1

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

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

在 Ember 中,这是如何实现的?

4

2 回答 2

1

在这种情况下,我们使用服务在应用程序生命周期中存储变量。Initializer 将变量和菜单项提供给服务。菜单组件从服务中检索变量。

您还可以定义一个助手来从服务中检索变量。

于 2016-03-29T06:14:14.350 回答
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}}
于 2016-03-29T06:17:56.930 回答