我尝试使用Angular Material中的标签来方便日期之间的导航(只是滑动标签以更改日期),我还有一个日期选择器可以快速跳转到另一个日期。
装载工作正常;我使用当前日期初始化日期选择器,并在当月每天加载标签。
如果我在另一个月选择日期,我会重新加载标签以显示适当的日期。为此,我在日期选择器上添加了$ watch。这工作正常,但在$ watch结束时我设置tabSelected谁是要显示的选项卡的索引。那部分不起作用,因为它就像摘要过程没有完成。
我考虑一个解决方案:只需使用新值重命名选项卡。但是有没有办法像我一样重置数组并设置索引:
$scope.$watch('dateSelected', function (newValue, oldValue) {
if ((newValue.getMonth() != oldValue.getMonth())
|| (newValue.getFullYear() != oldValue.getFullYear())) {
$scope.tabs = initialiseGamesTabs($scope.dateSelected);
}
$scope.tabSelected = getTabSelected();
});
答案 0 :(得分:0)
变量$scope.dateSelected
本身没有变化,因为更改日期只会更改变量'属性。您必须通过将recursively
的第三个参数添加为$watch
来观察变量true
。
代码:
$scope.$watch('dateSelected', function (newValue, oldValue) {
if ((newValue.getMonth() != oldValue.getMonth())
|| (newValue.getFullYear() != oldValue.getFullYear())) {
$scope.tabs = initialiseGamesTabs($scope.dateSelected);
}
$scope.tabSelected = getTabSelected();
}, true); // <----------- add true here
进一步阅读: $watch an object