【问题标题】:How to stop Ember Render complaining about deprecated quoteless parameters when using call()?使用 call() 时如何阻止 Ember Render 抱怨不推荐使用的无引号参数?
【发布时间】: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


    【解决方案1】:

    一个肮脏的解决方案,但现在工作:

    Ember.Handlebars.registerBoundHelper('renderModuleEdit', function(callingContext, module, options) {
      options.types[0] = "STRING";  // FIXME: hack
    
      var modelName = callingContext.get('type').get('modelName');
      return Ember.Handlebars.helpers.render.call(callingContext, "edit_" + modelName,     modelName, options);
    });
    

    我也找不到合适的修复方法:-/

    【讨论】:

    • 是的,我调试了helpers.render 调用,发现"STRING" 是其他可接受的属性之一。我没有找到通过这些选项的 ember 代码的所有角落,所以我真的不想无意中影响其他东西。
    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多