ngOptions Ошибка при возврате данных
console.log
в контроллере выводится объект {name:'12345235'}
это хорошо, но пытается использовать ng-option
Атрибут в разделе HTML выдает приведенную ниже ошибку. Я пытался вернуть несколько вложенных объектов из службы, но все равно получаю приведенную ниже ошибку в консоли, любые советы / помощь приветствуются, озадачены на этом этапе, не уверен, что еще я могу попробовать?
HTML:
<html ng-app="app">
...
<body>
...
<div ng-controller="SetsController">
<section ng-options="set in sets"><p>{{set.name}}</p></section>
</div>
...
</body>
</html>
Угловой код:
angular.module('app', []);
angular.module('app').controller('SetsController', ['$scope', 'setsService', function($scope, setsService){
$scope.sets = setsService.display('123', 3);
console.log($scope.sets);
}]);
angular.module('app').service('setsService', function(){
this.display = function(setId, limit) {
return {name:'12345235'}
}
});
Ошибка консоли:
Error: [$compile:ctreq] http://errors.angularjs.org/1.4.7/$compile/ctreq?p0=select&p1=ngOptions
I/<@http://devt.local.one/core/lib/angular.js:6:416
t@http://devt.local.one/core/lib/angular.js:59:233
t@http://devt.local.one/core/lib/angular.js:59:300
K@http://devt.local.one/core/lib/angular.js:62:78
g@http://devt.local.one/core/lib/angular.js:54:410
K@http://devt.local.one/core/lib/angular.js:61:1
g@http://devt.local.one/core/lib/angular.js:54:410
g@http://devt.local.one/core/lib/angular.js:54:433
g@http://devt.local.one/core/lib/angular.js:54:433
g@http://devt.local.one/core/lib/angular.js:54:433
g@http://devt.local.one/core/lib/angular.js:54:433
W/<@http://devt.local.one/core/lib/angular.js:53:480
zc/d/</<@http://devt.local.one/core/lib/angular.js:20:99
lf/this.$get</n.prototype.$eval@http://devt.local.one/core/lib/angular.js:133:217
lf/this.$get</n.prototype.$apply@http://devt.local.one/core/lib/angular.js:133:446
zc/d/<@http://devt.local.one/core/lib/angular.js:20:57
e@http://devt.local.one/core/lib/angular.js:39:191
zc/d@http://devt.local.one/core/lib/angular.js:19:1
zc@http://devt.local.one/core/lib/angular.js:20:274
Zd@http://devt.local.one/core/lib/angular.js:19:83
@http://devt.local.one/core/lib/angular.js:293:238
a@http://devt.local.one/core/lib/angular.js:174:399
Hf/c@http://devt.local.one/core/lib/angular.js:35:212
http://devt.local.one/core/lib/angular.js
Line 107
3 ответа
ngOptions
директива требует select
директивы. Он не может использоваться самостоятельно. Таким образом, вы должны либо использовать правильную структуру с тегом выбора вместо раздела (и не забудьте ngModel
тоже в этом случае) или используйте ngRepeat
:
<div ng-controller="SetsController">
<section ng-repeat="set in sets"><p>{{set.name}}</p></section>
</div>
Параметры ng должны использоваться с тегом select. см. документацию ng-options. В этом случае вам нужно использовать ng-repeat
например,
<select ng-model="myColor" ng-options="color.name for color in colors">
<option value="">-- choose color --</option>
</select>
в вашем случае вам нужно использовать ng-repeat как,
<section ng-repeat="set in sets"><p>{{set.name}}</p></section>
В моем случае я получил эту ошибку, потому что у меня нет ng-model
приписывать <select>