2017-01-19 15 views
0

私のコントローラに次のようなデータがあります: $scope.myString = "00011" 文字列内の各文字にチェックボックスをモデル化する方法はありますか?AngularJSの文字列内の特定の文字にバインド/モデリング

<input type="checkbox" ng-model="myString.charAt(0)" ng-checked="'1'"> <input type="checkbox" ng-model="myString.charAt(1)" ng-checked="'1'"> <input type="checkbox" ng-model="myString.charAt(2)" ng-checked="'1'"> <input type="checkbox" ng-model="myString.charAt(3)" ng-checked="'1'">

最終的な結果、私がチェックした1の列と0を保持するためにmyStringをしたいと思います。私の上記の例はうまくいかないが、私は問題を解決しようとしていることを示している。

答えて

2

これを行うことができない、スニペットは以下を参照してください。

function TodoCtrl($scope) { 
 

 

 
$scope.myString = "00011"; 
 

 
$scope.checkBoxModel = Array.from($scope.myString); 
 

 

 
$scope.check = function(){ 
 
    $scope.myString = $scope.checkBoxModel.join(""); 
 
console.log($scope.myString); 
 
} 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app> 
 
    <h2>Todo</h2> 
 
    <div ng-controller="TodoCtrl"> 
 
    <input type="checkbox" ng-true-value=1 ng-false-value=0 ng-change="check()" ng-model="checkBoxModel[0]"> 
 
<input type="checkbox" ng-true-value=1 ng-false-value=0 ng-change="check()" ng-model="checkBoxModel[1]"> 
 
<input type="checkbox" ng-true-value=1 ng-false-value=0 ng-change="check()" ng-model="checkBoxModel[2]"> 
 
<input type="checkbox" ng-true-value=1 ng-false-value=0 ng-change="check()" ng-model="checkBoxModel[3]"> 
 
    
 
    </div> 
 
</div>

+0

これは、私はちょうどサーバーに提出上の文字列に変換したように私のアプリケーションでは、私は '変化()'関数を必要としない、ちょうどノート、私の溶液中で素晴らしい仕事。 – Harvey

-1

私たちは、あなたがこれを行うことができ、HTMLで今中間操作

 $scope.myString = "00111"; 


     $scope.booArr = []; 

$scope.stringToValue($scope.myString); 


     $scope.stringToValue = function(convertString){ 
      var len = convertString.length; 
      for(var i=0; i<len; i++) 
      { 
       if($scope.myString.chatAt(i) == '0') 
       { 
        $scope.booArr[i] = false; 
       } 
       else 
       { 
        $scope.booArr[i] = true; 
       } 
      } 
     }; 

     $scope.valueToString = function(){ 
      var len = $scope.booArr.length; 

      var outputString = ''; 

      for(var i=0; i<len; i++) { 
       if ($scope.booArr[i]) { 
        outputString = outputString + '1'; 
       } 
       else { 
        outputString = outputString + '0'; 
       } 
      } 
      $scope.myString = outputString; 

     }; 

せずに直接

<input type="checkbox" ng-repeat="item in boolArr" ng-model="item" ng-change="valueToString()">