Jquery-templ和带连字符的键( - )

时间:2012-02-01 11:53:00

标签: jquery json

我有一个带有'BASIS-TYPE'键的json数组。如果我在标记中使用此值:

<html>
<head>
<script src="/js/jquery-1.7.min.js"></script>
  <script src="/js/jquery-plugins/jquery.tmpl.min.js"></script>
<script>
$(document).ready(function(){
var jsonarray = {"_id":"15", "BASIS-TYPE":"80"}
        var markup = "<tr><td>${_id}</td><td>${BASIS-TYPE}</td></tr>";
        $.template( "tableTemplate", markup);
        $("#templtable").replaceWith('<table id="templtable">'+headers+'</table>');
        $.tmpl( "tableTemplate", jsonarray ).appendTo("#templtable");
}
</script>
</head>
<body>
    Tabel:</br>
    <table id="templtable"></table>
</body>
</html>

它会查找“BASIS”而不是“BASIS-TYPE”,从而引发错误:

Uncaught ReferenceError: BASIS is not defined

更换BASIS-TYPE将显示所需的结果。

有没有解决方案?

2 个答案:

答案 0 :(得分:1)

对模板的这一更改将解决您的问题:

var markup = "<tr><td>${_id}</td><td>${$data['BASIS-TYPE']}</td></tr>";

答案 1 :(得分:0)

我认为你必须重命名你的财产,

一个解决方案就是:

遍历数组

for (var x in jsonarray ) {
   if( x == 'BASIS-TYPE' ) { jsonarray.basisType = x; break; }
}

然后在模板引擎中使用:

var markup = "<tr><td>${_id}</td><td>${basisType}</td></tr>";