我正在为我的项目使用 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>
有什么建议吗?
最佳答案
如果您想访问数据对象的属性,也许您应该访问它们:
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>
因为从您的“字符串化”代码中我可以看到 $data
的属性 ID
等于 lc822
关于jquery-templates - 如何将字符串转换为jquery对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9110647/