2012-02-01 6 views
1

私は、 'BASIS-TYPE'というキーを持つjson配列を持っています。私は、マークアップでこの値を使用する場合:Jquery-templとハイフン付きのキー( - )

<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-TYPE」「BASIS」とないためになります。

Uncaught ReferenceError: BASIS is not defined 

必要な結果が表示されますBASIS-TYPEの交換します。

これに解決策はありますか?私はあなたがあなたの財産の名前を変更する必要があります考えて

+0

私たちのためのBuccanテストケース。 –

+0

あなたはコード全体を投稿できますか? – Shaheer

+0

FYI私はチェックして、 '' BASIS-TYPE ''は間違いなく有効なオブジェクトのプロパティ名です。 –

答えて

1

このテンプレートを変更すると、問題が解決します。

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

Bang、ありがとう!これはトリックです。 –

+0

あなたは大歓迎です:)! – bang

0

一つの解決策はこれです:アレイ全体

ループ

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

、その後、テンプレートエンジンの使用中:

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

ありがとうございます。唯一のことは、私のアプリケーションではキーの名前が可変なので、私は事前にキーの名前を知らないということです。 –

+0

それをあなたのテンプレートにどのように入れますか? – Shaheer

+0

私は、変数名から - を削除するリビルドを実装することができます。それは自動的に物事を行います。唯一のことは、$ {basisType}に "BASIS-TYPE"という値が入っていて、期待通りに80ではないということです。 –

関連する問題