我是Angular JS的新手,我尝试将一些封装的指令写入样式按钮组。我有一个“restrict:'A'”指令,我需要在其中检索父级的填充以获得内部可用。我也试着避免使用JQuery。 Angular JS看起来非常整洁,我不想搞砸这种感觉。 简而言之,我的链接功能包含以下内容:
parentScope = element.parent().scope();
parentScope.$watch(parentHeight = element.parent()[0].css("padding"), function(newValue, oldValue, scope){
var parentHeight = element.parent()[0].offsetWidth,
parentPadding = newValue;
}
我一直收到一个未定义的错误。 在指令中访问css值的正确方法是什么?
答案 0 :(得分:0)
$ watch应该被赋予范围成员(字符串)或函数(https://docs.angularjs.org/api/ng/type/$rootScope.Scope)的名称。如果它是成员名称,它将对其变化做出反应,如果它是函数,它将对其返回值的变化作出反应。 assign的结果是赋值,所以你实际上是在特定时刻传递padding值来观察,而你应该传递一个成员名称或函数。 您应该传递一个返回填充值的函数,如下所示:
parentScope.$watch(
function() {
return element.parent()[0].css("padding");
}, function(newValue, oldValue, scope) {
var parentHeight = element.parent()[0].offsetWidth,
parentPadding = newValue;
});