Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS动态更新指令链接函数中的属性_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS动态更新指令链接函数中的属性

Javascript AngularJS动态更新指令链接函数中的属性,javascript,angularjs,Javascript,Angularjs,我有一个接收字符串的指令,我希望该指令随后修改并添加为属性的属性 HTML 此似乎将属性添加到attrs对象的class属性中: console.log(attrs) 但是DOM没有更新。我尝试了$compile,但这也不会更新DOM上的class属性 我错过了什么?非常感谢 可以使用directive元素修改css类 代码的工作示例: 可以使用插值和引用指令范围 <div directive class="class1 {{classList}}" otherAttribute="he

我有一个接收字符串的指令,我希望该指令随后修改并添加为属性的属性

HTML

似乎将属性添加到
attrs
对象的class属性中:

console.log(attrs)

但是DOM没有更新。我尝试了
$compile
,但这也不会更新DOM上的class属性


我错过了什么?非常感谢

可以使用directive元素修改css类

代码的工作示例:


可以使用插值和引用指令范围

 <div directive class="class1 {{classList}}" otherAttribute="hello"></div>

link: function (scope, elem, attrs) {
        scope.classList = "class2";
}

链接:功能(范围、要素、属性){
scope.classList=“class2”;
}

请注意,代码中有一个错误,您使用
+=
运算符引用了未定义的
作用域.classList
,导致
未定义Class1 class2
文本。我想这可能是示例中的输入错误…

似乎我想得太多了。:-)谢谢你的帮助。
.directive('directive', function () {

return {

    link: function (scope, elem, attrs) {

            var classList = "{active: attrs.otherAttribute == 'hello'}";

            attrs.ngClass = classList;

            console.log(attrs);

        }

    }

})
$$observers: Object
$attr: Object
ngClass: "{active: attrs.otherAttribute == 'hello'}"
otherAttribute: "hello"
__proto__: Object
app.directive('directive', function () {
    return {
        link: function (scope, element, attrs) {
            scope.classList += "class1 class2";
            element.addClass(scope.classList);
            console.log(attrs);
        }
    }
});
 <div directive class="class1 {{classList}}" otherAttribute="hello"></div>

link: function (scope, elem, attrs) {
        scope.classList = "class2";
}