上記のJSFiddleは、問題を説明するために設定されています。しかし、基本的に:
HTML:
<breadcrumb></breadcrumb>
<div ng-view></div>
Angularディレクティブとルーティング:
angular
.module('app', [])
.directive('breadcrumb', function() {
return {
restrict: 'E',
template: "<ul class='breadcrumb'><li ng-repeat='node in path'><a ng-href='{{node.url}}'>{{node.label}}</a></li></ul>",
replace: true,
controller: Ctrl1
}
})
.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/', {
template: '<h1>{{pgTitle}}</h1>',
controller: Ctrl2
});
}]);
コントローラー
function Ctrl1($scope) {
$scope.path = [{
label: 'Home',
url: '#/'}];
$scope.pgTitle = "Home"
}
function Ctrl2($scope, $routeParams) {
$scope.path = [{
label: 'Home',
url: '#/'},{
label: 'Node 2',
url: '#/node2'}];
$scope.pgTitle = "Node 2"
}
Ctrl2で変更$scope.path
すると、breadcrumbディレクティブが更新されると思いますが、実際には発生していません。私はそれが彼らの相対的な範囲と関係があると信じなければなりません、しかし単にそれが何を見るのに十分によく理解していません。私は何十もの記事とStackOverflowの投稿を読みましたが、何が欠けているのかを知るのに十分な具体的なものはありません。
誰かが私を正しい方向に向けてくれることを願っています。
どうもありがとう!
nz