1

だから私はルーターで解決を介してhttpリクエストを行っています.httpリクエスト内のファクトリから値を取得するにはどうすればよいですか? ファクトリに関数があり、呼び出して値を取得し、http 要求を介してその値を送信します。解決関数にファクトリを挿入する方法はありますか?

  $routeProvider
    .when('/', {
      redirectTo: '/home'
    })
    .when('/home', {
      templateUrl: 'views/main_portal.html',
      controller: MyController15,
      resolve: MyController15.loadAll
        })
    .when('/home/convo', {
      templateUrl: 'views/convo.html',
    })
    .otherwise({
      redirectTo: '/home'
    });


MyController15.loadAll = {
  //I WANT TO PASS A VARIABLE HERE TO USE IN THE PARAMS OBJECT.
  allQ: function($http) {
        return $http({
        url: some_url,
        method: post,
        params: {action: 'someAction', valueToPass: ???????}
      });
    }
};

var MyController15 = ['allQ',
  function(allQ){
//some data manipulation of allQ.data

}];
4

2 に答える 2

2

おそらく、いくつかのパラメーターを解決するだけで、コントローラーは $http またはサービスを使用してデータを取得できます...そのように:

$routeProvider.when('/home/:valueToPass', {
                  templateUrl: 'views/main_portal.html',
                  controller: 'MyController15',
                  resolve: {valueToPass: function($route){
                      return $route.current.params.valueToPass;
                  }}
              });     

//...

app.controller('MyController15', function($scope, $http, valueToPass) {

//...

または、この jsFiddle を使用して問題を説明できますか?

http://jsfiddle.net/malix/BEscs/

于 2013-08-21T18:00:25.290 に答える
0

http リクエストをサービスに再構築する必要があります。おそらく、あなたが価値を得ているのと同じサービスです。サービス メソッドで http promise を必ず返すようにしてください。

于 2013-08-20T22:36:29.267 に答える