我在我的项目中使用Angular Moment Picker。当涉及编辑页面时,ng-model值应该被来自API的数据覆盖,但是不管怎样,值都不会覆盖到时刻选择器ng-model而不是使用undefined绑定ng-model值。如果我删除时刻选择器它确实有效。以下是我的情况演示。
查看
<input name="time_of_time"
class="form-control"
placeholder="Select a time"
ng-model="scheduler.timeOfTime"
ng-model-options="{updateOn: 'blur'}"
moment-picker="scheduler.timeOfTime" //Working if remove this line
format="HH:mm">
控制器
myApp.controller('HomeCtrl', function ($scope) {
$scope.scheduler = {};
$scope.scheduler.timeOfTime = '11:10';
console.log($scope.scheduler);
答案 0 :(得分:2)
我遇到了同样的问题。
此评论对我有帮助。 https://github.com/indrimuska/angular-moment-picker/issues/92#issuecomment-263669991
从链接。有两种方法可以做到这一点。 1.使用来自moment-picker属性的格式化字符串日期
<input moment-picker="ctrl.formattedDate"
ng-model="ctrl.momentDate"
ng-model-options="{ updateOn: 'blur' }"
format="DD MMM YYYY"
start-view="month">
<!-- Use `ctrl.formattedDate` anywhere -->
Formatted date: {{ ctrl.formattedDate }}
2。使用Moment.js对象检索格式化日期 从时刻选择器中删除参数
<input moment-picker
ng-model="ctrl.momentDate"
ng-model-options="{ updateOn: 'blur' }"
format="DD MMM YYYY"
start-view="month"
change="ctrl.setFormattedDate(newValue)">
<!-- Use `ctrl.formattedDate` anywhere -->
Formatted date: {{ ctrl.formattedDate }}
在您的控制器中
ctrl.setFormattedDate = function (momentDate) {
// do you stuff.. and
ctrl.formattedDate = momentDate.format('DD MMM YYYY');
};
我最终选择方法2。 希望这有帮助。