【发布时间】:2016-06-05 21:00:59
【问题描述】:
似乎如果骨干模型没有为模板中引用的属性设置默认设置,它会在全局范围内查找? (编辑:我也在使用 Marionette 和 Underscore)
我有一个包含以下内容的模板:
<td><@= ((location !== null)?location:'N/A') @></td>
当它被渲染时,它会显示页面的 URL,包括哈希。我假设它显示来自全局命名空间 (Window.location.toString()) 的位置。当填充模型的传入 JSON 字符串没有定义位置属性并且模型没有默认设置时,就会发生这种情况。
如果传入的数据在键/值对中包含位置属性,它会很好地显示该值。
如果传入的数据不包含该属性,但模型上有一个默认设置:
myModel = io.models.BaseModel.extend({
defaults: {
location:null,...
然后它会按预期显示“N/A”。
我想我的问题是,主干是这样滚动的吗?如果模型上未定义该属性,那么它是否会查看其他范围?或者这与渲染模板时如何评估位置有关?
我真的很想了解正在发生的事情,以便更好地了解我可能需要如何进行更改以以最正确的方式防止范围污染。
【问题讨论】:
标签: javascript backbone.js marionette underscore.js-templating