Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angular 1.5组件中等待UI路由器解析的承诺_Javascript_Angularjs_Angular Ui Router_Angular Routing - Fatal编程技术网

Javascript 如何在Angular 1.5组件中等待UI路由器解析的承诺

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

我用的是角1.5分量。我不知道如何通过Resolve获取数据

你能帮我弄点光吗

Plunker:


安古拉斯普朗克
文件。写(“”);
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: '='
},