【发布时间】:2013-05-28 13:39:49
【问题描述】:
我正在尝试使用 angularJs 创建一个 自定义标签。此标记有一个名为data 的属性。 data 得到这样的值 <skillviz data="{{user.info}}"></skillviz>。 user.info 是一个 JSON 对象。但是当我尝试在我的指令定义中访问这个data 属性时,我得到undefined。这样做的正确方法是什么?
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>
users 是一个 JSON 类型的对象,在控制器中声明。所以基本上users 将是
{"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>");
});
}
}
});
弹出警告框说undefined
【问题讨论】:
-
我刚刚将
element.html("<script>alert(" + attrs['data'] + ")</script>");更改为alert(attrs['data']);,然后它对我有用。 plnkr.co/k7VCGMpYISBkm5iOtTjp
标签: javascript json angularjs