2016-11-22 12 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で使用できるように文字列として変数 –

関連する問題