* ngДля запуска бесконечного цикла в angular2

Я пытаюсь визуализировать свойства объекта, используя ключи в angular2, используя следующий код:

<ul>
    <li *ngFor="let element of componentModel | keys;let i=index">
      {{element.key}}--{{element.value}}  // 1---Bhushan...loaded only once
      <span  *ngIf="element">{{ loadProperty(i,element) }}</span>
    </li>
</ul>

Но я столкнулся с проблемой здесь. Вывод в браузер загружается только один раз. но вызов метода, т.е.loadProperty(i,element) работает в бесконечном цикле.

loadProperty(i:number,element:any){       
    console.log(element.key+'========'+element.value);
    console.log(element);      
}

значит на выходе браузера

(1 --- Бхушан)

отображается только один раз, но на консоли он работает бесконечно, как показано ниже:

Я хочу вызывать этот метод только один раз за итерацию.

какие-либо входы?

Ответы на вопрос(1)

Решение Вопроса

Это просто обнаружение изменений Angular2 при вызове на работуloadProperty(i,element) снова и снова в каждом цикле обнаружения изменений.

Вызов методов из шаблона не рекомендуется, потому что они вызываются очень часто. Вместо этого вы должны хранить результат в свойстве и связываться с этим свойством.

 Günter Zöchbauer17 июн. 2016 г., 10:41
Какая часть именно вызывает у вас проблемы?
 Bhushan Gadekar17 июн. 2016 г., 10:42
тот, который я упомянул в вопросе. функция вызывается несколько раз, хотя я хочу, чтобы она вызывалась только один раз за итерацию
 Bhushan Gadekar17 июн. 2016 г., 11:11
хорошо..пробуем это и дадим знать работает ли он или нет
 Günter Zöchbauer17 июн. 2016 г., 11:26
Это вызвано статическими проверками в вашей IDE. Просто используйте тип, который вы хотите передать. В моем примере это излучает"dummy" что потребует@Output() someOutput:EventEmitter<string> = new EventEmitter<string>();
 Bhushan Gadekar17 июн. 2016 г., 11:16
у меня есть эта ошибкаGeneric type 'EventEmitter<T>' requires 1 type argument(s)
 Bhushan Gadekar17 июн. 2016 г., 10:25
Я не уверен, как это сделать с привязкой свойства, у вас есть какой-либо plnkr для этого, где метод будет вызываться только один раз за итерацию? @Gunter
 Günter Zöchbauer17 июн. 2016 г., 10:28
Что вы пытаетесь достичь? Звучит какstackoverflow.com/questions/36427670/...
 Günter Zöchbauer17 июн. 2016 г., 10:48
Это именно то, что должна делать директива в связанном ответе.<span *ngIf="element" (onCreate)="loadProperty(i, element)"></span> должен делать то, что вы хотите.
 Bhushan Gadekar17 июн. 2016 г., 10:34
почти такой же, но я также хочу передать итерированный элемент в метод. фактически эти элементы являются объектами, и я предоставляю редактор для каждого элемента в зависимости от его типа, чтобы изменить его значение. то есть. если это объект, состоящий из массивов, он будет загружать objectEditorComponent и внутри него будет загружать arrayEditorComponent для каждого массива. таким образом я использую * ngFor для итерации и передачи итерированного элемента в функцию для выбора правильного редактора на основе его типа данных. это рекурсивный процесс, пока он не получит последний элемент.

Ваш ответ на вопрос