Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在每个呈现的dom节点中存储jquery模板数据_Jquery_Templates_Binding - Fatal编程技术网

在每个呈现的dom节点中存储jquery模板数据

在每个呈现的dom节点中存储jquery模板数据,jquery,templates,binding,Jquery,Templates,Binding,我正在从服务器检索一个列表json数据,该数据使用jquery模板呈现到一个行表中。例如: <script id="entry_tmpl" type="text/x-jquery-tmpl"> <tr class="row_data" name="${id}> <td class="col_name">${name}</td> <td class="col_number">${number}<

我正在从服务器检索一个列表json数据,该数据使用jquery模板呈现到一个行表中。例如:

<script id="entry_tmpl" type="text/x-jquery-tmpl">
    <tr class="row_data" name="${id}>
        <td class="col_name">${name}</td>
        <td class="col_number">${number}</td>
    </tr>
</script>
到目前为止没有什么特别的。现在请注意,除了“name”和“number”之外,我在数据对象中还有一些额外的数据,它们不是由模板呈现的。我希望以后能够在javascript内部访问这些属性。因此,我想找到一种方法来保存每个渲染注释的原始数据。所以以后我可以这样做:

var elmentObj = $("#row_data[name='5']").prop('obj_data');
var other_data = elementObj['other_data'];

实现这一目标的最佳方式是什么?我在网上到处搜索,找不到解决方案来完成我想做的事情。

因此,在使用jquery填充表后,我自己在一个循环中设置了数据。数据:

for (var i=0; i<entries.length; ++i) {
    var  e = entries[i];
    $(_.str.sprintf("#entry_tmpl .row_data[name='%s']", e.id)).data('tmpl_data', e);
}

这并不理想,因为我正在寻找一种在模板渲染期间实现这一点的方法,所以我不需要额外的循环,但这可以完成任务。

在您的问题中,这似乎是一个循环,您可以在将其渲染到变量中时捕获它,这样可以保存它以备以后使用,但看起来像是您在尝试,但从已填充的表中,那是在被捕之后。那么是什么原因呢?您可能指的是更晚的版本,即浏览器存储?对不起,也许我没有解释清楚。我已经将整个数据存储在变量'entries'中,它显示在我的代码中,但是,它与dom节点是分开的。我在其他地方有javascript代码,它直接与渲染节点一起运行,我发现必须循环使用我的原始“entries”变量来定位所需的对象很不方便。如果我能够在dom中存储每个元素数据,那么我的其他代码就可以快速访问对象,因为我当前的代码已经引用了dom节点。这样更方便。似乎在渲染节点后,我应该再次遍历“entries”变量,并使用jquery的.data方法将数据绑定到渲染节点。然而,我的问题是,是否有更有效的方法来实现这一点,可能是在tmpl渲染期间,因为它已经在每个元素之间循环。
for (var i=0; i<entries.length; ++i) {
    var  e = entries[i];
    $(_.str.sprintf("#entry_tmpl .row_data[name='%s']", e.id)).data('tmpl_data', e);
}