AngularJS指令不会在范围变量更改时更新

阿明

我尝试编写一个小指令,以将其内容包装在另一个模板文件中。

这段代码:

<layout name="Default">My cool content</layout>

应该有以下输出:

<div class="layoutDefault">My cool content</div>

因为布局“默认”具有以下代码:

<div class="layoutDefault">{{content}}</div>

这里的指令代码:

app.directive('layout', function($http, $compile){
return {
    restrict: 'E',
    link: function(scope, element, attributes) {
        var layoutName = (angular.isDefined(attributes.name)) ? attributes.name : 'Default';
        $http.get(scope.constants.pathLayouts + layoutName + '.html')
            .success(function(layout){
                var regexp = /^([\s\S]*?){{content}}([\s\S]*)$/g;
                var result = regexp.exec(layout);

                var templateWithLayout = result[1] + element.html() + result[2];
                element.html($compile(templateWithLayout)(scope));
            });
    }
}

});

我的问题:

例如,当我在模板(在布局模板中或在布局标签内部)中使用范围变量时。{{whatever}}它只是最初工作。如果我更新whatever变量,则该指令不再更新。整个链接功能只会被触发一次。

我认为,AngularJS不知道,该指令使用范围变量,因此不会被更新。但是我不知道如何解决此问题。

夸克:

您应该创建一个绑定范围变量并观察其变化:

return {
   restrict: 'E',
   scope: {
     name: '='
   },
   link: function(scope) {
     scope.$watch('name', function() {
        // all the code here...
     });
   }
};

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Boot父模块不会在子模块上更改时更新

React Native ListView不会在数据更改时更新

UI-Router-范围不会在状态更改时被破坏?

jQuery Timepicker不会在AngularJS指令中更新模型

实现ControlValueAccessor的Angular 2指令不会在更改时更新'touched'属性

Auto-Scaling组不会在启动配置更改时更新

范围变量更改时的更改指令

ReactJS组件textarea不会在状态更改时更新

NSLocale NSLocale preferredLanguages不会在语言更改时更新

ngModel不会在更改时更新值

Bootstrap v4 popover不会在React中的状态更改时更新

React useCallback不会在状态更改时更新

useEffect不会在路由更改时更新状态

反应useCallback不会在第一次更改时更新状态onChange

React JS组件不会在状态更改时更新

AngularJS不会在异步模型更改时更新视图

单元格样式绑定不会在值更改时更新

角度图不会在数据更改时更新

AngularJS 1.5:scope。$ watch内部链接函数不会在模型更改时更新

Angular 2视图不会在数组更改时更新

Webpack不会在更改时重建

mapStateToProps 不会在更改时更新组件

ReactJS 组件不会在父状态更改时更新

Angular 组件属性不会在引用属性更改时更新

Angular V9 异步管道不会在数据更改时更新模板视图

React 视图不会在状态更改时更新

V-if 指令不会在变量更改时动态更新

绑定控件不会在源更改时更新

自定义 vue 组件不会在值更改时更新