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