我使用angularjs并选择选项集合。如果我添加了html选项标签,那么一切都很好。但是,如果我尝试从角度添加项目它不起作用。
我的代码:
<div ng-controller="statisticsTableController">
<select ng-model="publishersdata"
ng-options="s for s in publishersdata"
chosen option="publishersdata">
</select>
</div>
和AngularJs代码:
function statisticsTableController($scope, $http) {
var publishersArray = [];
$http.get('/api/getAllItems').success(function(data) {
angular.forEach(data, function(data) {
publishersArray.push(data.Name);
});
});
this.publishersdata = publishersArray;
//...
}
为什么它不起作用?以及如何解决它?
更新
更改后:
function statisticsTableController($scope, $http) {
var publishersArray = [];
$http.get('/api/getAllItems')
.success(function (data) {
angular.forEach(data, function (data) {
publishersArray.push(data.Name);
});
});
$scope.publishersdata = publishersArray;
//...
}
HTML:
<div ng-controller="statisticsTableController">
<select multiple
ng-model="publishersdata"
ng-options="s for s in publishersdata"
chosen option="publishersdata">
</select>
</div>
它无法正常工作
答案 0 :(得分:1)
我看到的一个问题是,ng-model
和ng-options
都指向同一个publishersdata
对象,这可能是导致此操作的原因之一。您的ng-model
应该是一个对象,其中包含下拉列表中选择的内容。
同样如上所述,您应将publishersdata
附加到$scope
,否则无法在HTML中访问
除此之外,这对我来说很好。
答案 1 :(得分:0)
在foreach的参数中尝试代码而不是数据使用值
angular.forEach(data, function (value) {
publishersArray.push(value.Name);
});