【发布时间】:2014-03-25 05:57:28
【问题描述】:
我正在遵循一个模板,用于动态选择要使用渲染助手渲染的模型、路由、控制器,如outlined in this question(和其他地方)。我的问题是我们想在设置Ember.ENV.RAISE_ON_DEPRECATION 标志的情况下运行,以便在问题发展为升级噩梦之前发现问题。我正在从车把助手调用 Ember.Render,如下所示:
Ember.Handlebars.registerBoundHelper('renderModuleEdit', function(callingContext, module, options) {
var modelName = callingContext.get('type').get('modelName');
return Ember.Handlebars.helpers.render.call(callingContext, "edit_" + modelName, modelName, options);
});
模板中有这段代码:
{{#each module in modules}}
<div class="tab-content" {{bind-attr class="module.active:active"}}>
{{renderModuleEdit module module}}
</div>
{{/each}}
问题是渲染在“无引号参数”的测试中失败,即使我使用的是call(),而不是直接的车把模板语法。该测试在this line 的源代码中定义。实际测试是options.types[0] !== 'ID',而选项参数在寄存器辅助函数(上面的第一个代码块)中可用,因此我可以将 1st 类型从@987654328 更改@,我不确定我可以将它 更改为 什么不会导致其他东西在以后巧妙地破坏。错误消息如下:
未捕获的错误:不推荐使用带有 {{render}} 的无引号参数。请更新引用的用法'{{render "edit_Intro"}}。
由于我没有使用{{render edit_Intro}} 进行此调用,因此我不知道如何更正此问题。如果我将模板代码更改为{{renderModuleEdit 'module' 'module'}},那么我的renderModuleEdit 的参数会以'module' 的字符串形式出现,而不是我需要的模型实例。
我觉得我不了解此测试的实际用途以及“无引号”与“引用”参数的含义。有人可以解释一下吗?有没有办法解决这个弃用警告,像这样从注册的绑定车把助手调用渲染?
【问题讨论】:
标签: javascript ember.js handlebars.js view-helpers