Angular.js指令,attrs显示标记的属性但不能引用它

时间:2015-11-19 17:13:38

标签: javascript angularjs

我的下面的代码片段是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属性?

1 个答案:

答案 0 :(得分:0)

“意外的输入结束”是语法错误,这意味着你打开了一些语句(例如使用(但不是),或{但不是} )。

在你的情况下,就在这里:

console.log(JSON.parse(attrs.ga) 

应该

console.log(JSON.parse(attrs.ga))

你只是忘了右括号。