2015-06-09 9 views
5

अलग मैं HTMLएनजी-यदि या अल्पविराम से एनजी जाँच मिलान मूल्य

<!doctype html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Example - example-ngModel-getter-setter-production</title> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script> 
<script src="app.js"></script> 

</head> 
<body ng-app="getterSetterExample"> 
<div ng-controller="ExampleController"> 
<form name="userForm"> 

<label ng-repeat="id in ids"> 
    <input type="checkbox" 
      value="{{id.id}}" 
      ng-checked="id.id == csv"> {{id.id}} 
</label> 

</form> 
</div> 
</body> 
</html> 

निम्नलिखित है और नियंत्रक

(function(angular) { 
    'use strict'; 
angular.module('getterSetterExample', []).controller('ExampleController', ['$scope', function($scope) { 

$scope.csv = '5,6,76,78'; 
$scope.ids = [ 
    {id:5}, 
    {id:64}, 
    {id:456}, 
    {id:47}, 
    {id:767}, 
    {id:78}, 
    {id:55}, 
    {id:98} 
]; 

}]); 
})(window.angular); 

मैं चेकबॉक्स चेक किया जब आईडी सीएसवी में पाए चाहते हैं। तो इन दो मानों चेकबॉक्स शुरू में चयन किया जाना चाहिए

यहाँ यह http://plnkr.co/edit/XoW4hARWlzN5iTMuCJW1

उत्तर

7

आप संख्या की एक सरणी के लिए csv बदल सकते हैं:

$scope.csv = [5,6,76,78]; 
//If you REALLY need it as a string 
$scope.csv = '5,6,76,78'.split(',').map(Number); 

फिर html में आईडी के सूचकांक जाँच

<label ng-repeat="id in ids"> 
    <input type="checkbox" 
      value="{{id.id}}" 
      ng-checked="csv.indexOf(id.id) != -1"> {{id.id}} 
</label> 
+1

मैंने आपको 23 सेकंड तक हराया: पी –

4

आप != साथ ng-checked अभिव्यक्ति के अंदर .indexOf उपयोग करने की आवश्यकता है उदाहरण के लिए आईडी 5 और 78 csv में है।

मार्कअप

<label ng-repeat="id in ids"> 
    <input type="checkbox" 
      value="{{id.id}}" 
      ng-checked="csv.indexOf(id.id) != -1"> {{id.id}} 
    </label> 

कोड

$scope.csv = '5,6,76,78'.split(','); 

Demo Plunkr

+0

ईमानदारी से कहूं तो, आप विधि दे देंगे गलत परिणाम अगर सीएसवी '55, 76,78 'है, तो यह आईडी के साथ चेकबॉक्स की जांच करेगा: 5, 6, 7, 8, 55, 76, 78: पी –

+0

http://plnkr.co/edit/p7cPrfrCeXNTlUuM70e1? पी = पूर्वावलोकन –

+0

तो आप विभाजित कर सकते हैं अपनी स्ट्रिंग और एक उचित सरणी प्राप्त करें :) –

1

आप एक सरणी के लिए csv स्ट्रिंग बदलने की आवश्यकता,

(function(angular) { 
    'use strict'; 
angular.module('getterSetterExample', []) 
    .controller('ExampleController', ['$scope', function($scope) { 
    $scope.csv = '5,6,76,78'; 
    $scope.csv1 = $scope.csv.split(','); 
    console.log($scope.csv1); 

    $scope.ids = [ 
     {id:5}, 
     {id:64}, 
     {id:456}, 
     {id:47}, 
     {id:767}, 
     {id:78}, 
     {id:55}, 
     {id:98} 
]; 
    $scope.isInArray = function(value) { 
     return $scope.csv1.indexOf(value.toString()) > -1; 
    } 
}]); 
})(window.angular); 

http://plnkr.co/edit/YGkCKZoo3JlB7iGQRDPn?p=preview

+2

यह लगभग दो ही के समान जवाब है, बस कह रहा है :) –

संबंधित मुद्दे