テンプレートの URL からの現在のパスが必要です ($location.path の内容)。しかし、私はたくさんのコントローラーを持っているので、コントローラー経由ではありません(そして、の宣言を複製したくない$scope.currentUrl = $location.path;
)。アドバイスをありがとう。
質問する
65003 次
2 に答える
92
AngularJS テンプレートはスコープ内で利用可能なものしか見ることができないため、何らかの方法で $location サービスをスコープ内に配置する必要があります。$rootScope と呼ばれる AngularJS アプリケーションで常に使用できるスコープが 1 つあるため、ユースケースに使用できます。
できることは、モジュールの run() メソッドを使用して、$rootScope で $location を公開することです。
var myApp = angular.module('myApp', []).run(function($rootScope, $location) {
$rootScope.location = $location;
});
これにより、すべてのテンプレートで「場所」を使用できるようになるため、後でテンプレートで実行できます。
Current path: {{location.path()}}
于 2012-08-13T13:57:32.727 に答える
1
別の方法として、よりセマンティックで汎用性の高いui-routerを使用してから、コントローラーで現在の状態を取得し、それを に保存することもでき$scope
ます。
app.controller('MyCtrl', ['$scope', '$state', function MyCtrl($scope, $state) {
$scope.state = $state.current.name;
...
}
于 2014-10-24T18:08:07.320 に答える