2016-08-11 126 views
0

什麼是acually解決和postpromise的?AngularJS郵政承諾

postpromise的帖子是爲了獲取帖子並在稍後顯示。 並且我想用副作用做同樣的事情,但我該如何做這項工作?

我有以下代碼:

$stateProvider.state('home', { 
    url : '/home', 
    templateUrl : '/home.html', 
    controller : 'MainCtrl', 
    resolve : { 
      postPromise : ['posts', 
     function(posts) { 
      return posts.getAll(); 
     }] 
}) 

,但我想添加一個額外的postpromise。

我想:

$stateProvider.state('home', { 
    url : '/home', 
    templateUrl : '/home.html', 
    controller : 'MainCtrl', 
    resolve : { 

    postPromise : ['posts', 
     function(posts) { 
      return posts.getAll(); 
     }], 
    postPromise: ['sideactions', 
     function(posts) { 
      return actions.latestActions(); 
     }] 

    } 
}) 

但不會工作。

我怎樣才能使多個postpromises的決心?

+0

它是否適合你,不是嗎? –

回答

1

使用resolve您可以將數據傳遞到您的控制器。名稱爲postPromise的屬性可以替換爲您想要的任何內容,但不能有兩個具有相同名稱的屬性。

此外,在您的第二個postPromise您的服務名稱不匹配。

下面是如何使用模擬服務解析數據的示例。

HTML

<div> 
    <a ui-sref="home">click here for state:home</a> 
    <div ui-view></div> 
</div> 

的JavaScript

angular.module('app', ['ui.router']) 
    .config(['$stateProvider', function($stateProvider) { 
    $stateProvider 
     .state('home', { 
     url: '/home', 
     template: '<div>home template {{ data | json }}</div>', 
     controller: function($scope, posts, actions) { 
      $scope.data = posts.concat(actions); 
     }, 
     resolve: { 
      posts: ['postService', function(postService) { 
      return postService.getAll(); 
      }], 
      actions: ['actionService', function(actionService) { 
      return actionService.getActions(); 
      }] 
     } 
     }); 
    }]) 
    .factory('postService', ['$q', function($q) { 
    return { 
     getAll: function() { 
     return $q.when(['post1','post2']); 
     } 
    }; 
    }]) 
    .factory('actionService', ['$q', function($q) { 
    return { 
     getActions: function() { 
     return $q.when(['action1','action2']); 
     } 
    }; 
    }]); 

image

相關plunker可以在這裏找到https://plnkr.co/edit/uOBPQu

+0

啊,忘了你不能在配置階段使用$ q ...更新了我的答案。 –

+0

我們可以聊天@mikko viitala嗎? – maria