Angular指令的意外行为

时间:2013-11-14 16:51:55

标签: angularjs

我有一个使用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. 浏览器:chrome
  2. Angular 1.1.5
  3. 更新:

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

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

0 个答案:

没有答案