2016-11-22 1 views
0

Мне нужно сохранить значение ng-модели в строковом формате и использовать его во внешнем js.Below - это код. Я не могу сохранить его в строчном формате.Значение доступа ng-модели во внешних js

<!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"]. Есть ли способ конвертировать значение в область видимости в строковый формат? Ниже приводится ссылка Plunker: https://plnkr.co/edit/2MdwoWpu6MGrt2rA61io?p=preview

ответ

0

Используйте forEach цикл по каждому элементу в массиве и concat построить одну строку из всех элементов, начиная с первым пунктом.

+0

Если я пытаюсь получить доступ к $ scope.selectColor внутри контроллера, я всегда получаю null .. –

+0

Вы установили $ scope.selectColor в null и у вас нет кода для его обновления. – Mickers

+0

ng-model = "$ parent.selectColor [data]" сохраняет значение в selectColor .. вы можете проверить с помощью {{selectColor}} .. проверить plnker я добавил..что мое беспокойство заключается в том, как я храню это в переменная как строка, чтобы я мог использовать ее во внешних js –

Смежные вопросы