我在角度应用中有多个日期时间输入。
我想在输入模糊时将值设置为。我已使用ng-blur
在多个位置完成此操作并调用函数。
问题是我有多个输入,除了在模型上更新哪个属性之外,多个函数执行完全相同的操作似乎很愚蠢。处理这个问题的更好方法是什么。
另一个问题是,如果已有数据未更新。我再次拥有逻辑,但只需要知道如何将模型传递给函数并将返回值设置为它。
答案 0 :(得分:0)
在控制器中创建一个函数,将传递的对象设置为当前日期/时间:
request.resultType = .DictionaryResultType
然后在您的视图中,无论您要使用的任何事件(ng-blur,ng-click等),都可以将显示的日期传递给模型
$scope.setNow = function(dateObject) {
if (!dateObject) dateObject = new Date();
}
答案 1 :(得分:0)
听起来你可以使用指令。
<input ng-model="myDateField1" my-date-setter>
然后你的指令:
app.directive('myDateSetter', function () {
return {
restrict: 'A',
require: '^ngModel',
link: function (scope, elem, attrs, ctrl) {
elem.on('blur', function () {
if (!elem.val()) ctrl.$setViewValue(new Date());
});
}
}
});
然后您可以在任何需要的地方应用指令。