我被角度双向绑定和过滤器的问题所困扰。我正在通过参数使用过滤器,并且在另一个指令中更改参数值后,不应用过滤器。以下是部分代码:
<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绑定变量被正确应用。但结果不会被新值过滤。谁能暗示我做错了什么?谢谢。