AngularJS模板不能使用包含连字符的JSON

时间:2013-07-10 22:57:42

标签: angularjs

AngularJS模板不能使用密钥中包含连字符的JSON。

e.g。

我的Json看起来像

{
   ...
   link: {
       xx-test:{
            href: '/test/xx'
         }
}

现在,在我的angularjs模板中,如果我引用href它不起作用

<a ng-href="/app/edit?item={{item.link.xx-test.href}}"></a>

无法解析href呈现为的值 /应用/编辑?项目=

尝试了

<a ng-href="/app/edit?item={{'item.link.xx-test.href'}}"></a>
<a ng-href="/app/edit?item={{item.link.xx\-test.href}}"></a>
<a ng-href="/app/edit?item={{item.['link.xx-test'].href}}"></a>

2 个答案:

答案 0 :(得分:22)

对象键需要引用:

$scope.bar = {'xx-test':'foo'};

角度表达式中应使用括号表示法。

<p>{{bar['xx-test']}}</p>

您可以选择转义角度表达式中的连字符\-

答案 1 :(得分:2)

尝试{{item.link ['xx-test']。href}}

有关括号表示法的进一步阅读:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects