2016-06-17 2 views
4

Я пытаюсь сделать свойства объектов с помощью клавиш в angular2, используя ниже кода:* ngFor работает бесконечный цикл в 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 --- Бхушан)

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

Snapshot of the console

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

любые входы?

ответ

9

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

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

+0

Я не уверен, как это сделать с привязкой к свойствам, у вас есть какой-либо plnkr для этого, где метод будет вызван только один раз на итерацию? @Gunter –

+0

Что вы пытаетесь достичь? Похоже, http://stackoverflow.com/questions/36427670/angular2-calling-custom-function-after-ngswitch-new-view-is-created/36427769#36427769 –

+0

почти такой же, но я также хочу передать итерированный элемент к методу. на самом деле эти элементы являются объектами, и я предоставляю редактор для каждого элемента на основе его типа, чтобы изменить его значение. то есть. если это объект, состоящий из массивов, тогда он будет загружать objectEditorComponent & внутри, что он будет загружать arrayEditorComponent для каждого массива. поэтому я использую * ngFor для итерации и передачи итерационного элемента для выбора правильного редактора на основе его типа данных. его рекурсивный процесс, пока он не получит последний элемент. –

Смежные вопросы