2016-11-23 10 views
0

ラジオボタンでデータバインディングが機能しないのはなぜですか?ボタンテンプレート(スイッチ)を持つデータバインディング入力[ラジオ] AngularJS

私はこのフォームを持っている:

... 
<div class="form-group"> 
    <div class="btn-group" data-toggle="buttons"> 
     <label class="btn btn-default"> 
      <input type="radio" name="options" value="false" ng-model="genData.status"> Inactive 
     </label> 
     <label class="btn btn-primary"> 
      <input type="radio" name="options" value="true" ng-model="genData.status"> Active 
     </label> 
    </div> 
</div> 
... 
<button type="button" class="btn btn-primary" ng-click="generate()">Generate</button> 

は、このスイッチをレンダリング:

私のjsのコントローラで

enter image description here

私はスイッチを初期化してきたが、それは見解を反映doesntの:

$scope.genData = {}; 
$scope.genData.status = false; 

私はフォームを送信するたびに、ステータスは常に戻りますfalseスイッチで非アクティブまたはアクティブな場合は無視されます。

$scope.generate = function() { 
    console.log($scope.genData.status); // this is always false, dont know why 
} 

したがって、トグルはスコープを更新しませんか?あなたはそれを固定することができstringbooleanに関連している

答えて

0

$scope.genData.status = 'false'; 
+0

はまだ私はここに簡単なペンを作っスコープ先生 –

+0

を更新does notの^ _ ^コードを見て – LoganRx

+0

また、フォーム提出機能はどのように見えますか? – LoganRx

0

あなたは、この代替

<div class="form-group"> 
    <div class="btn-group" data-toggle="buttons" ng-if="genData.status === true"> 
     <label class="btn btn-default"> 
      <input type="radio" name="options" value="false" ng-model="genData.status"> Inactive 
     </label> 
     <label class="btn btn-primary"> 
      <input type="radio" name="options" value="true" ng-model="genData.status"> Active 
     </label> 
    </div> 
    <div class="btn-group" data-toggle="buttons" ng-if="genData.status === false"> 
     <label class="btn btn-primary"> 
      <input type="radio" name="options" value="false" ng-model="genData.status"> Inactive 
     </label> 
     <label class="btn btn-default"> 
      <input type="radio" name="options" value="true" ng-model="genData.status"> Active 
     </label> 
    </div> 
</div> 

<button type="button" class="btn btn-primary" ng-click="generate()">Generate</button> 

ことで、これを解決することができ、私は真のチェックするためにNG-IFを使用しましたかfalseの場合、gendata.status === trueの場合、gen-data.statusはcssクラスのbtn-defaultをbtn-primaryに変更しました。

falseがbtn-defaultに設定されています。 http://codepen.io/LoganArnett/pen/XNRaZL:

が、私は英語で良いじゃない、ただ

関連する問題