HTML:
<div ng-repeat="obj in arr">
<custom-directive status-stored-in="obj"></custom-directive>
</div>
问题:
我为大量的obj
内置了翻页。这意味着arr
的值(代表obj
的当前页面)将发生变化。但是,obj
部分中的status-stored-in="obj"
不会因更改而刷新。
现在我的解决方案是在ng-if
中添加customDirective
,来回闪烁其值以强制重新编译。有没有其他等效的,更简洁的方法来解决这个问题?
自定义指令的开头:
module.directive 'checkbox', (checkboxHooks) ->
restrict: 'E'
scope:
hook: '='
hookedTo: '='
statusStoredIn: '='
templateUrl: 'templates/checkbox.html'
link: (scope, element, attr) ->
答案 0 :(得分:7)
在指令链接功能中,您需要查看status-stored-in
进行更改,然后重新编译它,例如:
link: function(scope, element) {
scope.$watch('statusStoredIn', function() {
element.html(statusStoredIn);
$compile(element.contents())(scope);
});
}