2016-11-19 13 views
0

角度/電子アプリケーションでchecklist-modelを使用していて、次の3つのチェックボックスがあります。角度チェックボックスモデルによる検証

  1. 両方

  2. USA

  3. カナダ

デフォルトでは、で起動するには 'USAは、' ユーザーが「どちらをクリックしたが場合、チェックされています 'または' カナダ '、I特定のフラグを確認する必要があります。フラグがfalseの場合は、ユーザーに警告し、「両方」または「カナダ」をクリックする必要があります。

<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>