【发布时间】:2023-04-01 10:10:02
【问题描述】:
我正在尝试找出让主干视图读取模板数据的最佳方式。我正在使用下划线模板。
我在页面上的脚本块中定义了一个模板:
<script id="template" type="text/html">
This is my template
</script>
但是,在视图的某些部分中,我在阅读模板时遇到了问题(我认为这与 el 范围界定有关)。例如:
var SomeView = Backbone.View.extend({
tagName: 'div',
className: 'someClassName',
t1 : $('#template').html(),
initialize: function() {
var t1 = this.t1;
var t2 = $('#template').html();
...
},
...
t1 包含正确的模板 html,而 t2 为空。
这是为什么呢?以及从 DOM 中读取此模板的正确视图位置在哪里?
【问题讨论】:
-
我总是在渲染过程中读入模板。你能做一个小提琴吗?您是否尝试过在初始化中设置断点并手动运行 jQuery HTML 方法以查看结果?
-
如果我在
render()中读到$('#template').html(),我会得到 null/not defined :( -
如果你在初始化方法的脚本中设置断点怎么办(你可以通过在代码中输入
debugger;命令或在firebug/webkit中手动添加其他脚本选项卡来做到这一点) .这将允许您在运行时查看执行上下文的状态。 -
@tkone - 关于我应该检查的内容,关于此时的上下文有什么建议吗?我真的不知道要检查什么才能知道为什么 jquery 选择器不起作用...
-
你在调试器中检查了吗?我已经问了好几次了,还没有听到你回答。