我有一个使用Angular指令渲染大约100个日期的页面。在页面加载中,我有一个日期列表,我通过每个日期并使用指令呈现它们,该指令向服务器发送请求以通过一些修改来获取该特定日期。
我面临的问题并不总是填充所有日期。通过刷新页面,他们会被填充,其他一些消失,行为是随机的。
.directive('dname',function (service) {
return{
scope:{
date:'@',
locale:'@',
timeZone:'@',
format:'@',
airport:'@',
time:'@'
},
template:"<span>{{value}}</span>",
link: function(scope, element, attrs) {
var cb = function(localeTime){
scope.value = localeTime.formatted;
};
scope.$watchCollection (['date','locale','airport','timeZone','time'], function(){
var mode = (scope.date) ? "date" : (scope.time) ? "time" : "error";
service.processDate(mode,"",attrs,cb);
} )
}
}
})
service.processDate是我检查并调用DateGenerator.get函数的地方。
我非常确定,就所有单元测试都要传递的功能而言,控制台上的错误和刷新都不会带来结果,但不确定如何跟踪这种随机行为。有时候人口充足。
更新:
我能够解决这个问题,从@charlietfl评论开始,关于为每个指令定义范围。创建隔离范围后,为每个日期指令分配一个模型解决了问题。
<span nj-localization value="date['airport-'+$index]" time='2013-10-11T00:00Z' format='medium' airport='UUWW' timeZone='airport' />