0

角度のある双方向バインディングとフィルターの問題でブロックされています。パラメーターによるフィルターを使用していますが、パラメーター値が別のディレクティブで変更された後、フィルターが適用されません。コードの一部を次に示します。

  <div class="col-md-offset-4 col-md-4">
   <calendar-select ng-model="dailyTimekeepingCtrl.selectedDay">   </calendar-select>
  </div>
.......
   <work-timekeepings-day timekeepings="dailyTimekeepingCtrl.timekeepingList" 
            day="dailyTimekeepingCtrl.selectedDay"></work-timekeepings-day>

コンポーネント定義:

var workTimekeepingsDay = TimekeepingsApp.component('workTimekeepingsDay', {
    templateUrl : 'angular/components/work-timekeepings-day.html',
    controllerAs: '$workTkDayCtrl',
    bindToController: true,
    controller: function() {
        this.isTkCollapsed = true;
        this.workTimekeepingTemplate='angular/popups/work-timekeeping-popup.html';
    },
    bindings : {
        timekeepings : '=',
        day: '='
    }
});

コンポーネント テンプレート:

<p> {{($workTkDayCtrl.timekeepings | workTimekeeping : $workTkDayCtrl.day).length }} </p>
<p> {{$workTkDayCtrl.day | amDateFormat:'DD MM YYYY'}}</p>

dailyTimekeepingCtrl.selectedDayディレクティブを使用して変更され、双方向にバインドされます。

var calendarSelect = TimekeepingsApp.directive('calendarSelect', ['$timeout', function($timeout) {
return {
    restrict : 'E',
    scope : {
        calendarDate : '=ngModel'
    },
    templateUrl : 'angular/calendar-select.html',
    link: function (scope, element, attrs) {
            scope.dayUp = function() {
                       scope.calendarDate.add(1, 'days');
             };
        ...................

初めてトリガーされたとき、フィルターは正しく適用されます。dailyTimekeepingCtrl.selectedDay親ページ/コントローラーで変更した後、dayバインド変数が正しく適用されます。ただし、結果は新しい値でフィルタリングされません。誰かが私が間違っていることのヒントを与えることができますか? ありがとう。

4

0 に答える 0