URLバーの変更を監視し、それに基づいて特定の操作を行う必要があります。私はそれに変更を見る時計を追加するための最良の方法は何か疑問に思った?
5
A
答えて
12
イベントが存在し、それらは単にいくつかの理由のために文書化されていないしています。 $locationChangeStart
と$locationChangeSuccess
scope.$on('$locationChangeStart', function (event, newLoc, oldLoc){
console.log('changing to: ' + newLoc);
});
scope.$on('$locationChangeSuccess', function (event, newLoc, oldLoc){
console.log('changed to: ' + newLoc);
});
またはアンダースが示唆したように、あなたは$ $の時計の最初の引数に関数を渡すことで、あなたが望む任意の値を見ることができます:
次のイベントを試してみてくださいしかし
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
console.log(newLoc, oldLoc);
});
これはあなたの$ダイジェストに少しオーバーヘッドを作成します。
1
あなたは、コントローラの$の場所オブジェクトを要求したと仮定すると、あなたはこのようにそれを行うことができます。
$scope.$watch(function() { return $location.path() }, function() {
// Do stuff when the location changes
});
関連する問題
- 1. LocationProvider
- 2. LocationProvider costAllowed
- 3. $ locationProvider in angular url
- 4. BlackBerry 6.0のLocationProviderタイムアウト?
- 5. 角度$ locationProviderはURL
- 6. AngularJS不明なプロバイダ:$ locationProvider
- 7. は、どのように私はAngular.jsを学んでいるangular.js
- 8. アンドロイドでLocationProviderのステータスを取得する方法
- 9. angular.js
- 10. angular.js -
- 11. 角度js 1、Routing、locationProvider、404エラー
- 12. AndroidのどのLocationProviderにお金を使うのですか?
- 13. Angular.jsインターセプタでHTTP 401をキャプチャ
- 14. 指示文にangle $ locationProviderを挿入する
- 15. オープンアコーディオン。 Angular.js
- 16. Angular.jsメモリリーク
- 17. Angular.js routing
- 18. angular.jsでマルチセレクトボタンを作成するには
- 19. angular.jsでクッキーをクリアする方法
- 20. CodeIgniterをAngular.jsでルーティングする方法は?
- 21. Angular.jsでメインコントローラをリロードする方法は?
- 22. HotTowelでchart.jsを使用する、Angular.js
- 23. $ routeProvider/$ locationProviderはAngularJSルーティングの機能ではありません
- 24. GET http:// localhost:3000/lib/angular/angular.jsエラーが見つかりません
- 25. Angular.jsのサブディレクトリ内でのルーティング
- 26. angular.jsアプリのスタイリング
- 27. angular.js:38Uncaughtエラー:[$ injector:modulerr]
- 28. Angular.js:ダイアログ/モーダル
- 29. Highcharts angular.jsカスタムツールチップ
- 30. イントロツアーガイドangular.jsのマルチページプラグイン
ありがとう@blesh。 2つのイベントがいつ発生するのかを特定しようとしています。何か案は? – Lior
これは$ locationの初期化コードにすべて設定されています。 [GitHubのソースを見る](https://github.com/angular/angular.js/blob/master/src/ng/location.js) $ locationChangeStartではCTRL + Fを押すだけです。これは基本的に$ watch()メソッドの提案と同じですが、既に設定されていますので、オーバーヘッドは少なくなります。 –
一言で言えば、 '$ locationChangeStart'が最初に起こり、渡されたイベントオブジェクトに対して' preventDefault() 'を使って変更を防ぐオプションが与えられます。 '$ locationChangeSuccess'は、場所が正常に変更された後に起動します。 (むしろ、あなたが場所を変更することを約束したとき)。 –