AngularJS指令范围未更新其模板

比利·麦基

在AngularJS中,我可以成功地将数据从控制器绑定到指令。我还可以在指令中设置其他$ scope属性,并将它们最初反映在模板中

但是,当我通过指令更新作用域时(最初加载所有内容之后),这些更改未应用到模板中。

例如...

控制器

app.controller('FooCtrl',function($scope){
    $scope.bar = ['one','two','three'];
});

指示

app.directive('fooDirective',function($window){
  return {
    restrict: 'AE',
    replace: true,
    transclude: 'element',
    scope: {
      foo: "="
    },
    template: '<h1>{{foo}} - {{test}}</h1>',
    link: function(scope, element, attrs, ctrl){

      scope.test = 3;

      angular.element($window).bind('resize',function(){
        console.log('the screen has resized');
        scope.test = scope.test + 1;
      });
    }
  };
});

Html

<body ng-controller="FooCtrl">
    <foo-directive data-foo="bar"></foo-directive>
</body>

所有这些代码均正确地使用了控制器作用域和指令作用域中的数据来呈现模板。当我调整页面大小时,会命中console.log,但范围更新未反映在模板中。为什么会这样,我该如何解决?

这是一个小例子

像素位

由于您要在角度上下文之外处理jQuery事件,因此需要调用$ apply来触发$ digest:

link: function(scope, element, attrs, ctrl){

  scope.test = 3;

  angular.element($window).bind('resize',function(){
    scope.$apply(function() {
        console.log('the screen has resized');
        scope.test = scope.test + 1; 
    });

  });
}

更新的柱塞

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS指令范围未更新

来自分类Dev

单元测试AngularJS指令:范围未更新?

来自分类Dev

AngularJS指令未更新:

来自分类Dev

AngularJS指令模板未编译

来自分类Dev

AngularJS指令:更新隔离范围

来自分类Dev

AngularJS:从指令更新父范围

来自分类Dev

在指令模板中传递范围-AngularJs

来自分类Dev

测试angularjs指令(更改隔离范围var后,模板未在测试中更新)

来自分类Dev

测试angularjs指令(更改隔离范围var后,模板未在测试中更新)

来自分类Dev

AngularJS指令范围函数未调用

来自分类Dev

AngularJS指令模板类未呈现

来自分类Dev

AngularJS:指令模板如何每次都更新

来自分类Dev

Angularjs 指令的模板更新,但链接没有

来自分类Dev

Angular Directive双向范围未更新模板

来自分类Dev

在更改父范围上更新angularJs指令范围变量

来自分类Dev

AngularJS:从模板模型到父范围的指令绑定值

来自分类Dev

使用隔离范围时,AngularJS指令不将值插入模板

来自分类Dev

没有自己的模板的AngularJS隔离范围的指令

来自分类Dev

AngularJS:从模板模型到父范围的指令绑定值

来自分类Dev

使用隔离范围时,AngularJS指令不将值插入模板

来自分类Dev

范围更改后子指令模板不更新

来自分类Dev

当值在AngularJS之外更改时,AngularJS指令范围不会更新

来自分类Dev

ng-model在指令模板中未更新

来自分类Dev

AngularJS:指令和范围

来自分类Dev

angularjs指令隔离范围

来自分类Dev

AngularJS:指令范围继承

来自分类Dev

AngularJS隔离范围指令

来自分类Dev

AngularJS:指示指令的范围

来自分类Dev

指令的Angularjs范围问题