AngularJS:需要拆分/解析ng-options值

时间:2014-11-06 04:34:32

标签: angularjs ng-options

我正在使用的旧数据库将查找值存储在以分号分隔的列表中(在表中的单个字段/列中) - 这可以很好地用作ASP.NET的数据源。但是为了迁移到AngularJS - 我发现无法拦截该值并将其拆分为select元素中的单独选项。

在选择下拉菜单中,它只显示(例如)" 1个代表; 2个代表; 3代表"等

有人可以建议如何拆分这个值,以便选择选项垂直渲染 - 每个选项都有自己的选项行吗?

这就是select元素现在的样子:

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

3 个答案:

答案 0 :(得分:0)

ng-options适用于数组或对象。

如果我理解你的情况,你会从服务器获取一个带有分号分隔条目的大字符串。您需要将其拆分为数组。

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

然后在HTML中:

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

答案 1 :(得分:0)

你可以尝试这个,我也包含在我的代码中!

Working Code

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

JS CODE

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

});

答案 2 :(得分: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