美好的一天 我正在尝试解决角度js项目中的属性。以下是我到目前为止所做的,
.when('/wizard',{
controller:'WizardController',
templateUrl: 'partials/wizard.html',
access: access.user,
resolve: {
categories: function ($http) {
var cats= ;
var promise = $http({
method: 'GET',
url: '/categories',
});
promise.success(function(data){
console.log('Data successfully retrieved');
cats = data;
});
promise.error(function(){
console.log('Couldn\'t fetch categories' )
});
//categories =
// [{"id":"1","category_name":"Testing"},
// {"id":"2","category_name":"Testing 2"},
// {"id":"3","category_name":"Testing 3"},
// {"id":"4","category_name":"Testing 4"}];
return cats;
}
}
})
我正在尝试访问我视图中的类别 我已经将$ scope.categories设置为等于已解决的注入类别
<div class="pure-u-1-3">
<label for="category">Project Category</label>
<select ng-model="project.category" ng-options="k as v for (k,v) in categories">
<option value="">-- Choose Category --</option>
</select>
</div>
我似乎无法弄清楚我做错了什么!
答案 0 :(得分:1)
resolve对象的categories属性应返回一个promise,当你返回一个数组时,将来会重新分配。
类别方法应该写成
resolve {
categories:function($http) {
return $http({method: 'GET',url: '/categories'});
}
}
然后您将在控制器中获得类别依赖项。
如果你看一下你的逻辑,它会在http回调完成后重新引用cats
,而返回的引用是另一个对象。
无论如何最好还许承诺