angularjs - Angular.js 如何从指令更新范围?

标签 angularjs angularjs-directive angularjs-scope

如何更新指令中的范围?

<div ng-controller="MyCtrl">
    <p t></p>
</div>

我的指令:
var myModule = angular.module('myModule', [])
    .directive('t', function () {
        return {
            template: '{{text}}',
            link: function (scope, element, attrs) {
                scope.text = '1';
                element.click(function() {
                     scope.text = '2';
                });
            }
        };
    })
    .controller('MyCtrl', ['$scope', function ($scope) {
    }]);

单击后指令不更新。

最佳答案

使用 $apply 方法:

  element.click(function() {
      scope.$apply(function(){
           scope.text = '2';
      });
  });

说明:How does data binding work in AngularJS?

关于angularjs - Angular.js 如何从指令更新范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19154539/

相关文章:

javascript - 我怎么知道点击了哪个按钮作为对象添加到 ng-repeat 中的数组?

angularjs - 失败: Cannot read property 'then' of undefined (protractor)

javascript - Controller 功能中的 Angular 集 $scope.value 不起作用

javascript - $http 上不同模块的 $scope 更新

javascript - ngModel 第一次不触发 View 更新

php - Angular : How to merge two or more scope into single scope

javascript - Angular JS 添加新行默认处于可编辑模式

angularjs - Angular 中的多个自定义指令范围

javascript - 嵌套的 transclude 指令在错误的位置呈现内部 transcluded 内容

angularjs - 在 Angular Js 中拉动刷新