我正在使用的旧数据库将查找值存储在以分号分隔的列表中(在表中的单个字段/列中) - 这可以很好地用作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>
答案 0 :(得分:0)
ng-options
适用于数组或对象。
如果我理解你的情况,你会从服务器获取一个带有分号分隔条目的大字符串。您需要将其拆分为数组。
$scope.lkps = stringFromServer.split(";");
然后在HTML中:
<select ng-model="selectedVal"
ng-options="item for item in lkps">
</select>
答案 1 :(得分:0)
你可以尝试这个,我也包含在我的代码中!
<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);
}