AngularJS指令:在UI中未反映的更改$scope
AngularJS指令:在UI中未反映的更改$scope
我正在尝试使用AngularJS创建一些自定义元素,并将一些事件绑定到它上面,然后我注意到当在绑定函数中使用$scope.var时,UI不会更新。
以下是一个描述问题的简化示例:
HTML:
{{result}}
JS:
function Ctrl2($scope) { $scope.result = '点击按钮来改变这个字符串'; $scope.a = function (e) { $scope.result = 'A'; } $scope.b = function (e) { $scope.result = 'B'; } } var mod = angular.module('test', []); mod.directive('myButton', function () { return function (scope, element, attrs) { //从这里改变scope.result是有效的 //但在绑定函数中不起作用 //scope.result = 'B'; element.bind('click', scope.b); } });
DEMO:[http://plnkr.co/edit/g3S56xez6Q90mjbFogkL?p=preview](http://plnkr.co/edit/g3S56xez6Q90mjbFogkL?p=preview)
基本上,我将`click`事件绑定到`my-button`上,并希望在用户点击按钮B时更改`$scope.result`(类似于按钮A上的`ng-click:a()`)。但是,如果我这样做,视图不会更新为新的`$scope.result`。
我做错了什么?谢谢。