将变量从初始化器传递到把手.hbs(话语插件,一般可能是Ember)

时间:2016-03-28 22:37:27

标签: ember.js handlebars.js discourse

.hbs文件中,我正在创建包含各种项目的导航菜单。只有当用户是专业人士(布尔)时才会显示其中一项。

var pro是我的初始值设定项中设置的变量,我需要将其传递给.hbs文件,以便有条件地显示其中一个菜单项。

在恩伯,这是如何实现的?

2 个答案:

答案 0 :(得分:1)

在这种情况下,我们使用服务在应用程序生命周期中存储变量。初始化程序将变量和菜单项置于服务状态。菜单组件从服务中检索变量。

您还可以定义帮助程序以从服务中检索变量。

答案 1 :(得分:0)

我遇到了同样的问题:我必须使用我的html中设置的语言变量,我需要在模板中使用这个语言变量。我使用了一个助手来执行此操作:在帮助程序中,您可以使用在初始化程序中设置的变量pro(如果您声明了它)。

示例:

function myInit(pro) {
   var template = ...;
   var data = ...;
   Handlebars.registerHelper('ifProUser', function(item) {
      if (pro) {
         return "pro menu here";
      } else {
         return "";
      }
   }
   var html = template(data);
   ...
}

然后在模板中使用:

{{ifProInit}}{{/ifProInit}}