在一个.hbs
文件中,我正在创建一个包含各种项目的导航菜单。仅当用户是专业人士(布尔值)时,才会显示其中一项。
var pro
是在我的初始化程序中设置的一个变量,我需要将它传递给我的.hbs
文件,以便有条件地显示其中一个菜单项。
在 Ember 中,这是如何实现的?
在一个.hbs
文件中,我正在创建一个包含各种项目的导航菜单。仅当用户是专业人士(布尔值)时,才会显示其中一项。
var pro
是在我的初始化程序中设置的一个变量,我需要将它传递给我的.hbs
文件,以便有条件地显示其中一个菜单项。
在 Ember 中,这是如何实现的?
在这种情况下,我们使用服务在应用程序生命周期中存储变量。Initializer 将变量和菜单项提供给服务。菜单组件从服务中检索变量。
您还可以定义一个助手来从服务中检索变量。
我遇到了同样的问题:我必须使用在我的 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}}