2016-11-22 1 views
0

ng-model 값을 문자열 형식으로 저장하고 외부 js.Below에서 사용해야합니다. 코드입니다. 문자열 형식으로 저장할 수 없습니다.외부 js의 ng-model 값에 액세스

<!DOCTYPE html> 
<html> 

<head> 
    <link rel="stylesheet" href="style.css"> 
    <script src="script.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
    <script> 
    var app = angular.module('appNew', []); 
    app.controller('controllerNew', function($scope) { 
     $scope.dataSet = ["A", "B", "C"]; 
     $scope.selectColor = null; 
     //var colorString = "A,Green:B,Green:C,Red"; 
    }); 
    /* Below function getValues() is in external file. 
    I just need to pass selected dropdown from angular JS 
    to this below code in string format as shown below*/ 
    function getValues() { 
    var colorString = "A,Green:B,Green:C,Red"; 
      colorString = colorString.split(":"); 
      var lengthColorString = colorString.length; 
      var colorStringRed = []; 
      var colorStringBlue = []; 
      var colorStringGreen = []; 
      for (i = 0; i < lengthColorString; i++) { 
       var group = colorString[i].split(","); 
       switch (group[1]) { 
        case "Red": 
         colorStringRed.push(group[0]); 
         break; 
        case "Blue": 
         colorStringBlue.push(group[0]); 
         break; 
        case "Green": 
         colorStringGreen.push(group[0]); 
       } 
      } 
      alert(colorStringRed); 
      alert(colorStringBlue); 
      alert(colorStringGreen); 
    }; 
    </script> 
</head> 

<body ng-app="appNew"> 
    <table class="table TableOne" ng-controller="controllerNew"> 
    <thead> 
     <tr> 
     <th>Serial</th> 
     <th>Data</th> 
     <th>Dropdown</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr ng-repeat="data in dataSet"> 
     <td>{{$index + 1}}</td> 
     <td>{{data}}</td> 
     <td> 
      <select ng-model="$parent.selectColor[data]"> 
      <option value="">-- Select --</option> 
      <option value="Red">Red</option> 
      <option value="Blue">Blue</option> 
      <option value="Green">Green</option> 
      </select> 
     </td> 
     <td>{{selectColor}}</td> 
     </tr> 
    </tbody> 
    <button onclick="getValues()">Alert Values</button> 
    </table> 
</body> 

</html> 

여기서 $ scope.dataSet 예 [ "A", "B", "C", "D", "E"]에 대한 임의의 길이 일 수있다. 범위의 값을 문자열 형식으로 변환하는 방법이 있습니까? https://plnkr.co/edit/2MdwoWpu6MGrt2rA61io?p=preview

답변

0

배열의 각 항목을 통해 루프를 사용 forEachconcat 첫 번째 항목에 해당하는 모든 항목의 단일 문자열을 구축 : 는 아래 Plunker 링크입니다.

+0

컨트롤러 내부에서 $ scope.selectColor에 액세스하려고하면 항상 null이됩니다. –

+0

$ scope.selectColor를 null로 설정했으며이를 업데이트 할 코드가 없습니다. – Mickers

+0

ng-model = "$ parent.selectColor [data]"selectColor의 값을 저장합니다. {{selectColor}}를 사용하여 확인할 수 있습니다. 추가 한 plnker를 확인하십시오. 내 관심사는 어떻게 저장합니까? 외부 js에서 사용할 수 있도록 문자열 변수 –