Javascript AngularJS动态更新指令链接函数中的属性
我有一个接收字符串的指令,我希望该指令随后修改并添加为属性的属性 HTML 此似乎将属性添加到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
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";
}