2

console.log dans le contrôleur est la sortie de l'objet {name:'12345235'} qui est très bien, mais en essayant d'utiliser l'attribut ng-option dans la section HTML donne l'erreur ci-dessous, j'ai essayé de retourner plusieurs objets imbriqués du service mais toujours obtenir l'erreur ci-dessous dans la console, des conseils/aide appréciée, perplexe à ce stade, ne sais pas quoi d'autre je peux essayer?ngOptions Erreur lors du retour des données

HTML:

<html ng-app="app"> 
... 
<body> 
    ... 
    <div ng-controller="SetsController"> 
     <section ng-options="set in sets"><p>{{set.name}}</p></section> 
    </div> 
    ... 
</body> 
</html> 

Code angulaire:

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'} 
    } 
}); 

erreur Console:

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 
[email protected]://devt.local.one/core/lib/angular.js:59:233 
[email protected]://devt.local.one/core/lib/angular.js:59:300 
[email protected]://devt.local.one/core/lib/angular.js:62:78 
[email protected]://devt.local.one/core/lib/angular.js:54:410 
[email protected]://devt.local.one/core/lib/angular.js:61:1 
[email protected]://devt.local.one/core/lib/angular.js:54:410 
[email protected]://devt.local.one/core/lib/angular.js:54:433 
[email protected]://devt.local.one/core/lib/angular.js:54:433 
[email protected]://devt.local.one/core/lib/angular.js:54:433 
[email protected]://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</[email protected]://devt.local.one/core/lib/angular.js:133:217 
lf/this.$get</[email protected]://devt.local.one/core/lib/angular.js:133:446 
zc/d/<@http://devt.local.one/core/lib/angular.js:20:57 
[email protected]://devt.local.one/core/lib/angular.js:39:191 
zc/[email protected]://devt.local.one/core/lib/angular.js:19:1 
[email protected]://devt.local.one/core/lib/angular.js:20:274 
[email protected]://devt.local.one/core/lib/angular.js:19:83 
@http://devt.local.one/core/lib/angular.js:293:238 
[email protected]://devt.local.one/core/lib/angular.js:174:399 
Hf/[email protected]://devt.local.one/core/lib/angular.js:35:212 

http://devt.local.one/core/lib/angular.js 
Line 107 
+2

ng-options doit être utilisé avec select tag. voir la documentation [ng-options] (https://docs.angularjs.org/api/ng/directive/ngOptions). Dans ce cas, vous devez utiliser ng-repeat – MaheshKumar

+0

@MaheSirius Ah oui, 'ng-repeat', c'est ce qui se passe quand vous regardez le même code trop longtemps, merci de travailler maintenant! – llanato

+0

bienvenue :). Je l'afficherai comme réponse et pls l'accepter. – MaheshKumar

Répondre

2

ngOptions directive exige la directive select. Il ne peut pas être utilisé seul. Donc, vous devez soit utiliser une structure avec balise select au lieu de l'article (et ne pas oublier ngModel aussi dans ce cas) ou utiliser ngRepeat:

<div ng-controller="SetsController"> 
    <section ng-repeat="set in sets"><p>{{set.name}}</p></section> 
</div> 
2

ng-options devraient être utilisées avec balise select. voir la documentation de ng-options. Dans ce cas, vous devez utiliser ng répétition

par exemple,

<select ng-model="myColor" ng-options="color.name for color in colors"> 
    <option value="">-- choose color --</option> 
</select> 

dans votre cas, vous devez utiliser ng répétition comme,

<section ng-repeat="set in sets"><p>{{set.name}}</p></section> 
0

Dans mon cas, j'ai eu cette erreur parce que je n'ai pas l'attribut ng-model dans <select>