2016-11-19 73 views
0

我在我的角度/电子应用程序中使用了检查表模型,并具有以下三个复选框。使用角度复选框模型进行验证

  1. 两个

  2. 美国

  3. 加拿大

首先,默认情况下 '美国' 被选中,但是如果用户点击“两个'或'加拿大',I需要检查一个特定的标志,如果该标志是错误的,我需要提醒用户,并避免'两个'或'加拿大'被点击。

<div style="height:115px;background-color:#FBF9EC" class="form-control" > 
      <label ng-repeat="item in locations" style="width:80%"> 
        <input type="checkbox" checklist-model="locationData.item" checklist-value="item" checklist-before-change="checkListvalidate(item)" ng-change="checkBoxClickFunc(item)" ng-click="locationClick()"> 
        {{item}} 
      </label> 
     </div> 

In the controller: 
$scope.locationClick = function(){ 
    if(!myFlag){ 
      return false; 
    } 
}; 

清单-改动前该规范说每次

的角表情评估核对表的模型已经改变之前。如果它评估为'假',那么模型不会再改变。

它是什么,我没有做正确....

回答

0

你必须在checkedbox输入许多听众:

  • checklist-before-change="checkListvalidate(item)"
  • ng-change="checkBoxClickFunc(item)"
  • ng-click="locationClick()"

我认为这些解决方案太多以至于无法满足您的需求,此外,它会使逻辑的理解复杂化,并且可能会产生副作用。
为什么不只使用checklist-before-change指令并在里面拨打locationClick()呢?
我觉得应该够了。

这里的示例:

<body ng-controller="MainCtrl"> 
    <div style="height:115px;background-color:#FBF9EC" class="form-control" > 
      <label ng-repeat="item in locations" style="width:80%"> 
        <input type="checkbox" checklist-model="locationData.item" 
          checklist-value="item" checklist-before-change="checkListvalidate(item)" > 
        {{item}} 
      </label> 
     </div> 
    </body>