2016-10-24 8 views
1

条件に基づいてコントローラにテキストボックス値を渡す方法。 チェックボックスをオンにすると、テキストボックスをオブジェクト値でバインドし、コントローラに渡すだけで空白のままにして、コントローラにユーザー入力を渡します。チェックボックスをオンにした場合、私のコードで何が問題になっているのでしょうか。ここでチェックボックスがチェックされている場合、テキストボックス値をバインドします。

$scope.Product = [ 
     {"ProductID":12,"LNumber":"hrx",weght:"2"}, 
     {"ProductID":13,"LNumber":"pty",weght:"1"} 
    ] 

<div> 
<div> 
    <input type="checkbox" data-ng-model="Copyknotes" /> 
    <span >Copy notes from</span> 
</div> 

<table data-ng-repeat="Item in Product track by $index">           
    <tr > 
    <td>            
     <input type="radio" name="groupName_{{Item.ProductID}}" data-ng-model ="Item.isSelected" /> 
    </td> 
    <td data-ng-if="Copyknotes == true"> 
     <input type="text" data-ng-model="Item.LNumber"> 
     </td> 
     <td data-ng-if="Copyknotes == false" id="hi"> 
     <input type="text" data-ng-model="Item.LNumber="""> 
     </td> 
     </tr> 
</table> 
</div> 
+0

チェックボックスがチェックされていない場合Copyknotesは未定義であるため? – jomsk1e

答えて

2

をジャスト

データ-NG-INITを使用= ""

代わりに

data-ng-model="Item.LNumber=""" 

利用多分

data-ng-model="Item.LNumber" 


<table data-ng-repeat="Item in Product track by $index">           
    <tr > 
    <td>            
     <input type="radio" name="groupName_{{Item.ProductID}}" data-ng-model ="Item.isSelected" /> 
    </td> 
    <td data-ng-if="Copyknotes == true"> 
     <input type="text" data-ng-model="Item.LNumber"> 
     </td> 
     <td data-ng-if="Copyknotes == false" id="hi"> 
     <input type="text" data-ng-model="Item.LNumber" data-ng-init=""> 
     </td> 
     </tr> 
</table> 
1

使用scope.function

<input type="checkbox" data-ng-model="Copyknotes" ng-change="changeValue(Copyknotes)" /> 

//Code should be inside Angular js controller 
$scope.changeValue = function(Copyknotes){ 
    if(Copyknotes) 
    { 
    //Manipulate text box value here 
    $scope.Item.LNumber = 'whatever'; 
    } 
} 
1

は一例です。 https://plnkr.co/edit/3Vtl6roWfL1ZqaR2nEvf

<td data-ng-if="Copyknotes == false"> 
    <input type="text" data-ng-model="Item.NNumber" ng-init="Item.NNumber = ''"> 
</td> 

式が間違っていた - データ-NG-モデル= "Item.LNumber =" "" - 新しい値を割り当てたい場合、Item.LNumber = "''"(二重引用符で囲まれた二重引用符)を使用すると、t msgstr "" "属性を表示します。私はどのようにそれを行うことができるのライブの例を作りました。コントローラが入力の元の値を必要とするかどうかわからないので、新しい値(チェックボックスがオフの場合)が代わりにNNumberに保存されます。必要に応じて自由にLNumberに変更することができます。また、ng-initディレクティブは、入力がビューにレンダリングされたときに、オブジェクトのNNumberパラメータを開始するために使用されます。 また、比較するためにコピーノートを定義する必要があります。または、ng-if = "Copyknotes"、ng-if = "!Copyknotes"のような条件を記述します。

0
<input type="checkbox" data-ng-model="Copyknotes" ng-change="changeValue(Copyknotes)" /> 

すべての最初に次のデータ-ngのモデルと使用を削除します。

 //Code should be inside Angular js controller 
     var oninput = null; 
     $scope.changeValue = function(Copyknotes){ 
      if(Copyknotes) 
      { 
      var oninput = document.getElementById("textbox").onchange =function(){ 
     $scope.item.LNumber = this.value; 
      } 
      //Manipulate text box value here 

      }else{ 
      $scope.Item.LNumber = ''; 
      oninput = null 
      } 
     } 
関連する問題