如何将返回值绑定到角度为

时间:2016-01-25 18:02:44

标签: javascript angularjs

我在角度应用中有多个日期时间输入。

我想在输入模糊时将值设置为。我已使用ng-blur在多个位置完成此操作并调用函数。

问题是我有多个输入,除了在模型上更新哪个属性之外,多个函数执行完全相同的操作似乎很愚蠢。处理这个问题的更好方法是什么。

另一个问题是,如果已有数据未更新。我再次拥有逻辑,但只需要知道如何将模型传递给函数并将返回值设置为它。

2 个答案:

答案 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());
        });            
    }
  }
});

然后您可以在任何需要的地方应用指令。