Javascript 如何在Angular 1.5组件中等待UI路由器解析的承诺
我用的是角1.5分量。我不知道如何通过Resolve获取数据 你能帮我弄点光吗 Plunker:Javascript 如何在Angular 1.5组件中等待UI路由器解析的承诺,javascript,angularjs,angular-ui-router,angular-routing,Javascript,Angularjs,Angular Ui Router,Angular Routing,我用的是角1.5分量。我不知道如何通过Resolve获取数据 你能帮我弄点光吗 Plunker: 安古拉斯普朗克 文件。写(“”); app.js (function () { angular .module("app", ['ngRoute']) .config(function($routeProvider){ $routeProvider .when("/home", { template
安古拉斯普朗克
文件。写(“”);
app.js
(function () {
angular
.module("app", ['ngRoute'])
.config(function($routeProvider){
$routeProvider
.when("/home", {
template: `<main
promise-followers="$resolve.promiseFollowers"></main>`,
resolve: {promiseFollowers: function ($http) {
$http.get("https://api.github.com/users/octocat/followers")
.then(function(result) {
return result.data;
}, function(result) {
console.log(result);
});
}
},
})
.otherwise({ redirectTo: "/home" } );
})
.component("main", {
template: `<h3>Demo Angular 1.5 Resolver</h3>
<p>Promise Data from Controller :
<select ng-model="$ctrl.selected"
ng-options="option.id as option.login for option in $ctrl.followers"></select>
</p>
<p>Promise Data from Resolve :
<select ng-model="$ctrl.selected"
ng-options="option.id as option.login for option in $ctrl.promiseFollowers"></select>
<span class="label label-danger">Not Working</span>
</p>
<h4>Regular Selector Selected: {{$ctrl.selected}}</h4>`,
controller: function($http){
var self = this;
// This is just testing to to make sure api is working.
$http.get("https://api.github.com/users/octocat/followers")
.then(function(result) {
self.followers = result.data;
}, function(result) {
console.log(result);
});
self.$onInit = function () {
console.log(self.promiseFollowers);
}
}
});
})();
(函数(){
有棱角的
.module(“应用程序”、['ngRoute'])
.config(函数($routeProvider){
$routeProvider
.when(“/home”{
模板:``,
解析:{promiseFollowers:function($http){
$http.get(“https://api.github.com/users/octocat/followers")
.then(函数(结果){
返回结果数据;
},函数(结果){
控制台日志(结果);
});
}
},
})
。否则({重定向到:“/home”});
})
.组件(“主”{
模板:`Demo Angular 1.5解析器
来自控制器的承诺数据:
来自Resolve的承诺数据:
不起作用
已选择常规选择器:{{$ctrl.Selected}}`,
控制器:函数($http){
var self=这个;
//这只是为了确保api正常工作而进行的测试。
$http.get(“https://api.github.com/users/octocat/followers")
.then(函数(结果){
self.followers=result.data;
},函数(结果){
控制台日志(结果);
});
self.$onInit=函数(){
console.log(self.promiseFollowers);
}
}
});
})();
您忘记了从您的承诺追随者那里退回承诺
promiseFollowers: function ($http) {
return $http.get(...){
}
}
然后还需要定义一个bindings
选项来检索从resolve传递的值
bindings: {
promiseFollowers: '='
},
请务必参考,如果上述解决方案不起作用,这将有所帮助
Jist:“将解决方案注入控制器”应该可以解决您的问题
bindings: {
promiseFollowers: '='
},