我有一个使用 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 函数的地方。
我很确定我的所有单元测试都通过了功能,控制台上没有错误并且刷新会带回结果,但不确定如何跟踪这种随机行为。有时人满为患。
- 浏览器:铬
- 角 1.1.5
更新:
我能够解决这个问题,从@charlietfl 关于定义每个指令的范围的评论开始。创建隔离范围后,为解决问题的每个日期指令分配一个模型。
<span nj-localization value="date['airport-'+$index]" time='2013-10-11T00:00Z' format='medium' airport='UUWW' timeZone='airport' />