我有一个md-datepicker控件。我需要从外部更新模型值,但是当我这样做时,控件将不会反映更改。 但是,具有相同模型的第二个md-datepicker控件将传播更改。
我错过了什么?
angular.module('DatePick', ['ngMaterial']);
angular.module('DatePick').controller('Pick', function($scope) {
$scope.date = new Date();
$scope.nextDay = function() {
$scope.date.setDate($scope.date.getDate() + 1);
};
$scope.prevDay = function() {
$scope.date.setDate($scope.date.getDate() - 1);
};
});

<body ng-app="DatePick">
<div ng-controller="Pick">
<md-datepicker ng-model="date"></md-datepicker>
<md-datepicker ng-model="date"></md-datepicker>
{{date}}
<button ng-click="prevDay()">-</button>
<button ng-click="nextDay()">+</button>
</div>
</body>
&#13;
答案 0 :(得分:1)
我得到了Material devs的帮助。见票7045。 简而言之,.setDate()不会更改对象,因此不会检测到日期更改。相反,需要创建一个新对象。以下是有效的。
$scope.nextDay = function() {
$scope.date = new Date($scope.date.setDate($scope.date.getDate() + 1));
};
$scope.prevDay = function() {
$scope.date = new Date($scope.date.setDate($scope.date.getDate() - 1));
};