我正在为我的项目使用jquery模板。我面临的问题是,在渲染模板时,我将$data
转换为字符串并将其传递给onclick函数[请参阅下面的代码]。
<script id="Item" type="text/x-jquery-tmpl">
<li id="${ID}" class="card red ui-state-default">
<a class="desc" href="" onclick="return $$.popup.eItem('${($data)}');"> ${$data.Desc} </a>
</li>
</script>
将$data
对象转换为字符串并将其传递给函数
onclick="return $$.popup.eItem('${($data)}');"
这里,$data
是包含实际数据的对象。当我点击链接时,我将传递的字符串作为"[object Object]"
,我想将它再次转换回jquery对象,以便我可以在我的代码中使用它。
我可以使用'JSON.stringify()'将$data
对象转换为JSON,就像这样
onclick="return $$.popup.editCard('${JSON.stringify($data)}');"
但是当模板呈现为html时,这是输出:
<a class="desc" href="" onclick="return $$.popup.eItem('{"TemplateName":"CardItem","ID":"lc822","Desc":"make card EntityAssignId = 0","CardId":822,"LaneId":665,"Priority":1,"AssignedEntityId":0,"Pic":null,"SortOrder":2}');">make card EntityAssignId = 0</a>
那么有什么建议吗?
答案 0 :(得分:1)
如果您想访问数据对象的属性,可能应该访问它们:
onclick="return $$.popup.eItem('${($data.ID)}');"
通过这种方式,您将获得ID属性。你得到“[object Object]”,因为这是javascript用来将对象转换为字符串的方式(如果你调用alert($data);
从您的示例中我希望我的代码转换为
<a class="desc" href="" onclick="return $$.popup.eItem('lc822');">make card EntityAssignId = 0</a>
因为根据您的“字符串化”代码,我可以看到ID
的属性$data
等于lc822
答案 1 :(得分:0)
这就是你想要的:
console.log($('<div>').append( $data ).remove().html());
希望这有帮助。