0

我有一个使用 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. 浏览器:铬
  2. 角 1.1.5

更新:

我能够解决这个问题,从@charlietfl 关于定义每个指令的范围的评论开始。创建隔离范围后,为解决问题的每个日期指令分配一个模型。

<span   nj-localization  value="date['airport-'+$index]" time='2013-10-11T00:00Z' format='medium' airport='UUWW' timeZone='airport' />
4

0 回答 0