我在AngularJS中盯着我的方式。
我创建了一个自定义指令:
app.directive('myScroll',function(){
return {
restrict: 'A',
transclude: true,
template: '<div ng-transclude></div>',
link: function(scope , element , attrs) {
element.addClass('scroll-pane');
scope.$watch('tasks', function(newval, oldval){
if ( newval )
{
console.log(newval);
console.log(newval.length);
}
});
console.log("afer watch exper");
console.log (tasks);
}
};
});
使用以下 HTML:
<div my-scroll>
<ul>
<li data-ng-repeat="task in tasks" class="task-wrapper">
<div class="task-element">
<div class="name">{{task.name}}</div>
<div class="text">{{task.action}}</div>
</div>
</li>
</ul>
</div>
任务对象通过控制器调用的服务进行评估(如有必要,我将发布其代码)。
在指令代码中,任务对象是未定义的,因为我必须获得任务长度才能执行更多的 css 命令,所以我必须等待 ng-repeat 完成或等待任务变量将被评估。
由于某种原因,任务在 $watch 语句的外部和内部总是未定义。我可以在控制台中看到,首先打印“watch exper 之后”,然后是“in watch”,但仍然没有值。newval 对象具有 [move2:function] 但它的长度属性一直返回 0 但它保留了我的任务的资源数组。
我在这里缺少什么以及在评估任务变量时如何执行命令?
感谢帮手。