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

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

问题是我有多个输入,除了在模型上更新哪个属性外,拥有多个功能完全相同的事情似乎很愚蠢。有什么更好的方法来解决这个问题。

另一个问题是,如果已有数据不更新。同样,我有逻辑,但是只需要知道如何将模型传递给函数并为其设置返回值即可。

最佳答案

在控制器中创建一个函数,以将传递的对象设置为当前日期/时间:

$scope.setNow = function(dateObject) {
    if (!dateObject) dateObject = new Date();
}


然后,在您的视图中,可以通过您想要使用的任何事件(ng-blur,ng-click等)将显示的任何日期传递给模型。

<div ng-click="setNow(thisDate)">
    {{thisDate | date : 'hh:mm:ss'}}
</div>

<div ng-click="setNow(thisOtherDate)">
    {{thisOtherDate | date : 'hh:mm:ss'}}
</div>

<input type="text" ng-model="Task.StartDate" ng-blur="setNow(Task.StartDate)" >
<input type="text" ng-model="Task.EndDate" ng-blur="setNow(Task.EndDate)" >

关于javascript - 如何将返回值绑定(bind)到 Angular 模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34999185/

10-17 02:51