我的下面的代码片段是jQuery highcharts的指令:
return {
restrict: 'AE',
priority: 0,
link: function(scope, element, attrs) {
// console.log(attrs);
var ga = JSON.parse(attrs.ga);
// defines the options for the highcharts graph and uses data from the ga attr
var options = {...};
elem.highcharts(options);
}
}
将attrs
记录到控制台时,我看到输出:
{
$$element: n.fn.init[1],
$$observers: Object,
$attr: Object,
ga: "{"my": "json"}"
}
然而,当我尝试执行console.log(attrs.ga)
时,我在执行Unexpected end of input
时得到JSON.parse()
,而在记录它时我得到null
。
console.log(attrs.ga) -> null
console.log(JSON.parse(attrs.ga) -> Unexpected end of input
指令的名称是highchartsGauge
,我在我的标记中实现它,如下所示:
<highcharts-gauge ga="{{report.data}}" />
为什么我不能在指令中引用ga
属性?
答案 0 :(得分:0)
“意外的输入结束”是语法错误,这意味着你打开了一些语句(例如使用(
但不是)
,或{
但不是}
)。
在你的情况下,就在这里:
console.log(JSON.parse(attrs.ga)
应该:
console.log(JSON.parse(attrs.ga))
你只是忘了右括号。