2016-08-11 9 views
0

何が納得のいく解決であり、何かを後発させるのですか?AngularJSポスト約束

投稿投稿は投稿を受け取り、後で表示することです。 と私は副作用で同じことをしたいのですが、どうすればこの仕事をすることができますか?

私は、次のコードを持っている:

$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(); 
     }] 

    } 
}) 

を。

解決方法に複数の後処理を行うにはどうすればよいですか?

+0

あなたのためにうまくいきましたか? –

答えて

1

resolveを使用すると、コントローラにデータを渡すことができます。プロパティーpostPromiseは、任意のものに置き換えることができますが、同じ名前のプロパティーは2つありません。

また、2番目の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