复选框更新另一个字段的ng-model

时间:2016-02-14 13:49:51

标签: angularjs angular-ng-if

我正在尝试使用复选框设置另一个输入字段的日期。我不能让它发挥作用。任何帮助,将不胜感激。我创建了一个jfiddle来展示我想要做的事情。如您所见,复选框确实输入了日期,但未更改project.dateReturned模型。我正在尝试使用ng-if,也许有更好的方法。谢谢你的帮助。

<div ng-app ng-controller="ctrl">

<td><input type="checkbox" ng-model="project.returned" ng-init="checked=true" 
  name="project.returned"></td><br>

<td><span ng-if="project.returned" name="returned" 
   ng-init="project.dateReturn" ng-model="project.dateReturned">{{date |
    date:'MM/dd/yyyy'}}</span></td>


<pre>{{project.returned}}</pre>
<pre>{{project.dateReturned}}</pre>

'use strict';

var ctrl = function ($scope) {
   $scope.date = new Date();

  };

2 个答案:

答案 0 :(得分:0)

ng-model用于双向数据绑定,仅适用于可编辑字段(即输入标记)

我相信你想要的是:

<input type="text" ng-if="project.returned" name="returned" 
   ng-init="project.dateReturn" ng-model="project.dateReturned" 
   value="{{date | date:'MM/dd/yyyy'}}"</input></td>

答案 1 :(得分:0)

您可以使用watch()更新模型,如下所示。

查看:

  $scope.$watch("checkboxModel", function(is_cbox_checked){
    if (is_cbox_checked == true){
        $scope.dateReturned = new Date();
    } else {
        $scope.dateReturned = '';
    }
  });

控制器:

paneldata

http://plnkr.co/edit/7ewZhknT656NSK5LTqf1?p=preview