首页 > 解决方案 > 如何获取 HTML 元素的变量属性?

问题描述

我有一个 ng-repeat,我在其中设置了一个属性,如下所示:

<div ng-repeat="item in itemsList"
     stepType="{{item.stepType}}">
     {{item.itemValue}}
</div>

item.stepType 可以有值 'task' 或 'action' 我正在尝试获取属性 'stepType' ,如下所示:

let stepType = el.getAttributeNode("stepType");
console.log(stepType.value);

我得到的结果是:

{{item.stepType}}

但预期的结果是taskaction

我也尝试使用该函数获取属性,getAttribute()但结果是相同的。

我还注意到,在上面的代码中,如果我记录stepType而不是的值stepType.value,我会得到看起来像这样的对象stepType: 'task'

我怎样才能得到期望值?

标签: javascriptjqueryhtmlangularjsangularjs-ng-repeat

解决方案


如果属性名称被规范化

<div ng-repeat="item in itemsList"
     step-type="{{item.stepType}}">
     {{item.itemValue}}
</div>

自定义 AngularJS 指令可以$observe具有以下属性:

app.directive("stepType", function() {
    return {
        link: postLink
    };
    function postLink(scope, elem, attrs) {
        attrs.$observe("stepType", function(value) {
            console.log(value);
        });
    }
})

控制台将记录对属性内插值的更改。


推荐阅读