2013-07-27 4 views
1

У меня есть страница, где я обновить мою модель динамическиКогда я обновить мою модель в нг повторе директива нг-шоу не меняет

<div ng-repeat="action in actions"> 
    <div ng-show="action.showMyDiv">Hello </div> 
<div> 

когда я обновить свою модель динамически из действия на текущей странице с

$scope.actions[id]['showMyDiv']= true, 

раздел не отображается. Не могли бы вы мне помочь?

Заранее спасибо.

+0

Скрипка может помочь объяснить проблему лучше. – AlwaysALearner

ответ

1

При обновлении значения вручную, вы можете обернуть его в $ объеме $ применяются():.

$scope.$apply(function(){ 
    $scope.actions[id]['showMyDiv']= true 
}) 

EDIT:.

2 цента на $ объема $ применяются: Путь Угловые выстраивает привязки, делая грязную проверку при каждом рендере (много источников о процессе, если вы ищете вокруг). Поскольку вы используете метод углового по умолчанию (например, ng-click), флаг установлен для предупреждения приложения, что страница нуждается в «освежении», и вы видите, что изменения происходят.

Если вы ничего не изменили вручную, вам необходимо предупредить приложение, что оно нуждается в обновлении, и вы можете сделать это с помощью $ apply. См. this example для уточнения. Обратите внимание, что два изменения выполняются «вручную», с интервалом 2 с и 4 с, используя window.timeout (который вы не должны использовать, а скорее используете службу $ timeout), но только после второго - изменения, распространяемые на представление ,