2017-11-13 12 views
1

私は約5 $ http .getと.postメソッドからの応答をコントローラから他のコントローラに渡します。私はそれらの回答を配信するために放送を使うことを計画していました。しかし、state.goが良いルートかもしれないようです。 (意図されていない言葉遣い)。私はすでにいくつかの状態を定義していますが、それらのパラメータを渡すために他の非URL切り替え状態を追加するだけですか? おかげ

答えて

2

私はあなたが

//Example 
$routeProvider 
    .when("/chat", { 
     templateUrl: "msgView.html", 
     controller: "msgController", 
     resolve: { 
      messages: function($http){ 
       //return your $http.get calls data 
     } 
    } 
}); 

//use resolve like this in controller 
app.controller("msgController", function (messages) { 
    $scope.messages = messages; 
}); 

ます。また、この状態抽象を作ることができる角度のルートでの解決を使用するか、あなたの一番上の親状態にあるか、直接の親で解決作業を行うべきであると言うでしょう状態。これにより、UI-ルータ

$stateProvider 
    .state('chat', { 
    url: '/chat', 
    templateUrl: 'partials/chat.html', 
    controller: 'msgController as vm', 
    resolve: { 
     messages: function($http){ 
       //return your $http.get calls data 
     } 
    } 
    }); 

を使用して

例は、あなたがあなたのビューとコントローラを初期化する前にデータが利用可能であることを確認します。あなたのデータが空であるか部分的なものであるなら、あなたはあなたのコントローラーで "データが利用可能ではありません"というメッセージか何かのようにそれを処理することができます。

これはまた、任意のエラーは、ユーザーが404ページまたは他のページにリダイレクトされます、あなたの決意に発生した場合

$state.defaultErrorHandler((error: any) => { 
       $state.transitionTo("404"); 
      }); 
+0

が良い音で、指定したことを保証します。すでに定義されているルートのいくつかは、取得と投稿から受け取ったres.dataを使用します。そういうわけで解決策は良い考えです。データがない場合は新しいビューを開始しませんか?部分的なデータしか受け取っておらず、欠落していますが、私はまだ新しい状態をインスタンス化したいのですが? – uniXVanXcel

+0

ui-Routerとは対照的にngRouteを使用していることがわかりました – uniXVanXcel

+1

@uniXVanXcel私は自分の答えを更新し、ui-routerとYesを含めて "データが見つからない場合は新しい表示を開始しませんか?質問。 – Hey24sheep

関連する問題