2015-04-24 3 views
0
<div ng-repeat="app in fields track by $index"> 
    <span class="{{app.icon}}"></span> 
    <span ng-class="app.icon"></span> 
</div> 

var originalFields = [ 
    {title: 'Text Field', icon: 'fa-pencil'}, 
    {title: 'Multiple Choice'} 
]; 

Эти классы работают правильно в первый разнг-класс с переменной области действия

Когда я использовал что-то вроде этого $scope.fields = angular.copy(originalFields);

Затем он работает иногда, но не работает, иногда я получаю class="app.icon" вместо из class="fa-edit"

Я даже попытался использовать $scope.$apply(); после копирования, но он не работает

значение в app.icon = "fa-edit"

Что я делаю неправильно?

+2

Можете ли вы привести пример кода, который показывает эту проблему? – Rouby

+0

Можете ли вы дать мне ссылку рабочего скрипача? –

+0

решил это, сделав демо-версию plnkr.co, спасибо, ребята :) – Vamsi

ответ

0
<div ng-repeat="app in fields"> 
    <span class="{{app.icon}}"></span> 
    <span ng-class="app.icon"></span> 
</div> 

Я удалил track by $index Он работает отлично.

Когда первый элемент был удален, он копирует свойства второго элемента при использовании track by $index. Мое первое свойство значка элемента переопределяется вторым элементом. Второй элемент не имеет свойства icon.

Strange !!