1
我想要綁定一個指令中的變量並使用新的Angular 1.4 bindToController語法從指令中修改它。使用新的bindToController語法時,雙向綁定不起作用
HTML:
<body ng-app="mainModule" ng-controller="mainController">
<h2>{{boundVar}}</h2>
<my-directive ng-model="boundVar"></my-directive>
的Javascript:
angular.module('directiveModule', []).directive('myDirective',
function()
{
var r =
{
scope: true,
bindToController: { value: '=ngModel' },
template: '<h2>The value is: {{ctrl.value}}</h2><br><button ng-click="ctrl.increment()">Increment</button>',
controllerAs: 'ctrl',
controller: function()
{
this.increment = function() { this.value++; };
}
};
return r;
});
angular.module('mainModule', ['directiveModule']).controller('mainController',
function($scope)
{
$scope.boundVar = 10;
});
當頁面初始加載,你看到變量 'boundVar' 爲有效綁定:
但是當你按下按鈕時,只有內部變量會改變,所以雙向綁定好像不工作:
我缺少什麼?
謝謝!
嘗試bindToController:{boundVar:'='}。你也沒有使用正確的語法,在你的情況下,如果你保留你的原始代碼,html應該看起來像
ajmajmajma