应用过滤器时,变量会丢失其观察者

时间:2018-01-05 19:14:43

标签: javascript angularjs

我试图在AngularJS中实现日历组件,但在尝试显示当前月份时我偶然发现了一个错误。在我的组件控制器中,我有以下内容:

this.date = new Date();
this.month = this.date.getMonth() + 1;

我在我的模板中使用:

<span class="picker-nav" ng-click="$ctrl.prevMonth()"><</span>
   {{$ctrl.month | date: 'MMMM'}}
<span class="picker-nav" ng-click="$ctrl.nextMonth()">></span>

当我点击其中任何一个跨度时,它不会更改月份名称。但是,如果我不包含过滤器,它会按预期工作,没有日期格式化。我的猜测是过滤器做了一些事情,所以变量没有被观察进行更改,因此我有什么方法可以让这项工作无需手动设置$watch

1 个答案:

答案 0 :(得分:0)

从您的代码中丢弃this.month = this.date.getMonth() + 1并使用过滤器格式化日期。无法观察整数,因为它们是基本类型,而不是对象。