$ routeParamsがresolve関数で機能しない


138

この手法を使用しデータをロードしています。そこで、次の解決関数を作成しました。

NoteController.resolve = {
    note: function($routeParams, Note) {
         return Note.get($routeParams.key);
    }
}

問題はそれで$routeParams.keyあるundefined瞬間にresolve関数実行。それは正しい/バグですか?どうすれば修正できますか?

回答:


273

$route.current.params.key代わりに使用する必要があります。$routeParams唯一の更新された後、ルートが変更されます。したがって、コードは次の行に沿ったものになるはずです。

NoteController.resolve = {
    note: function($route, Note) {
         return Note.get($route.current.params.key);
    }
}

7
ありがとうございました!なぜ$ routeParamsが必要なのですか?
fedor.belov

2
ルートが既に一致して変更されている場合、docs.angularjs.org / api / ng。$ routeParamsは素晴らしいAPIだと思います。しかし、それが少し紛らわしいのは事実です...
pkozlowski.opensource

1
$routeParamsコントローラ内部で使用できます
meconroy

13
を使用ui-routerしてここに来る人のために:$stateParams行く方法です
petrkotek '10

Ionicフレームワークのようなものを使用し$stateParams.keyている場合はui-router、@ beretが言うように使用するため、resolve関数内で使用します。実現するのにしばらくかかった..
ObjectiveTruth
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.