私は以下のようなディレクティブテンプレートを持っています。ディレクティブテンプレート内で角2方向バインディングが機能しない
(function() {
'use strict';
angular
.module('testApp', [])
.directive('leftNav', leftNav);
/* @ngInject */
function leftNav() {
return {
replace : true,
restrict: 'E',
template: '<div class="left-nav">' +
'<left-header title="{{LeftNavCtrl.titleName}}">' +
'</left-header>' +
'</div>',
controller: LeftNavController,
controllerAs: 'LeftNavCtrl',
bindToController: true
}
}
function LeftNavController($modal, $scope) {
var vm = this;
vm.titleName = "first";
$scope.$on('changeTitle', function(event, args) {
vm.titleName = "second";
});
}
})();
ここで、ページが初めてレンダリングされると、タイトルは「最初」になります。 他のディレクティブのボタンをクリックすると、イベントが発生し、$ scope.onが呼び出されますが、新しい値はレンダリングされません。
ありがとうございます。
? – Yaser
'controllerAs'では、コントローラ本体で' this'を使うべきではありませんか? – Piou
実際のコードで更新されました。まだ動かない。 –