JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 如何在angularjs中获取自定义标签的属性值?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用angularJs创建一个自定义标签.此标记具有名为data的属性.数据得到这样的值< skillviz data =“{{user.info}}”>< / skillviz&gt ;. user.info是一个 JSON对象.但是当我尝试在我的指令定义中访问这个数据属性时,我得到未定义.这样做的正确方法是什么?

html代码

<div id="info-box" ng-repeat="user in users | orderBy:orderProp">            
          <div id="skill-block">
            <skillviz height="50" data="{{user.skills}}"></skillviz>
          </div>
      </div>

用户是一个JSON类型的对象,在控制器中声明.所以基本上用户将会是一个列表(数组)

{"first_name": "TifAnny","last_name": "Maxwell","skills": [
            {"name": "Java","score": 4.8,"color" : "red"},{"name": "C++","score": 4.0,"color" : "blue"},]
    },

services.js

angular.module('yott',[]).directive('skillviz',function () {
return {
    reStrict: 'E',link: function (scope,element,attrs) {
        element.html("<script>alert(" + attrs['data'] + ")</script>");
        });
    }
  }
});

警报框弹出说未定义

解决方法

使用$观察来观察属性的更改:
attrs.$observe('data',function(value) {
  console.log('data has changed value to ' + value);
});

和$设置来改变价值:

attrs.$set('data','new value');

或者,您可以使用@(绑定本地范围)将其链接到指令范围,并将其链接到指令范围(提供在父范围上下文中执行表达式的方法)or =(设置双向绑定) – 解释为here

angular.module('yott',function () {
    return {
        reStrict: 'E',scope { data: "=data" },attrs) {
            element.html("<script>alert(" +scope.data + ")</script>");
            });
        }
      }
    });

大佬总结

以上是大佬教程为你收集整理的javascript – 如何在angularjs中获取自定义标签的属性值?全部内容,希望文章能够帮你解决javascript – 如何在angularjs中获取自定义标签的属性值?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。