我希望能够创建一个angularjs指令,最终从元素属性创建一个HighCharts图。我有一个指令工作但任何动态设置属性返回undefined。最后,我希望元素的所有属性都以params的形式发送到$ http请求。
我尝试使用$ observe方法,它似乎不起作用,我也希望属性是任何东西而不是预定义。
请参阅此小提琴:http://jsfiddle.net/F52SF/以及指令下面的代码:
myApp.directive('example', function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
console.log('Log1:', attrs.exampleId);
attrs.$observe('exampleAttr', function () {
console.log('Log2:', attrs.exampleId);
});
var data = {};
for(var i in attrs){
var t = Object.prototype.toString.call( attrs[i] );
if(t !== '[object Object]' && t != '[object Function]') data[i] = attrs[i];
}
console.log(data);
}
}
});
答案 0 :(得分:2)
在您的示例代码中,存在一些错误/改进:
更好地读取传递给$ observe函数回调的值:
attrs.$observe('exampleAttr', function(newValue) {
/* use newValue here instead of attrs.exampleAttr */
});
这是工作小提琴:http://jsfiddle.net/F52SF/1/