2014-11-06 82 views
0

我正在使用的遺留數據庫將分隔值存儲在分號分隔的列表中(在表中的單個字段/列內) - 作爲數據源爲ASP.NET。但是,爲了遷移到AngularJS - 我發現沒有辦法截取值並將其拆分爲select元素中的單獨選項。AngularJS:需要拆分/解析ng-options值

在選擇下拉它簡單地示出了(例如)「1名代表; 2名代表; 3代表」等

任何人都可以建議如何所以選擇選項呈現垂直分割該值 - 每一個在它是自己的選擇行?

這是選擇元素現在的樣子:數組或對象

<select 
ng-model="exerciseVals[$index].reps1" ng-options="value.REPS as value.REPS for (key,value) in lkps 
></select> 

回答

0

ng-options作品。

如果我正確理解您的情況,您將從服務器獲取一個大的字符串,並使用分號分隔的條目。你需要把它分成一個數組。

$scope.lkps = stringFromServer.split(";"); 

然後在HTML:

<select ng-model="selectedVal" 
     ng-options="item for item in lkps"> 
</select> 
0

你可以試試這個,我已經包含在我的代碼呢!

Working Code

<div ng-app> 
    <div ng-controller="tempCtrl"> 
    <select> 
    <option ng-repeat="temp in tempdata"> 
    {{temp}} 
    </option> 
    </select> 
    </div> 
</div> 

JS代碼

var myApp = angular.module('App', ["xeditable"]); 
myApp.controller('tempCtrl',function ($scope) { 
alert(); 
$scope.tempdata = ["1 rep","2 rep","3 rep"]; 
console.log($scope); 

}); 
0

您還可以使用角度濾波:

<select ng-model ='select' ng-options="item for item in 'd;g;f'|split:';'"> 
    <option value="">Nothing selected</option> 
</select> 

JS:

myApp.filter('split',function(){ 

    return function(str,delimeter) 
    { 
return str.split(delimeter); 
    } 

檢查working example