Ember.js 在把手中显示布尔值
试图学习余烬JS,我是一个完全的初学者 我有一个Ember JS应用程序,其中一个模型有一个布尔值。当我在车把中显示此值时,我是这样做的:Ember.js 在把手中显示布尔值,ember.js,handlebars.js,Ember.js,Handlebars.js,试图学习余烬JS,我是一个完全的初学者 我有一个Ember JS应用程序,其中一个模型有一个布尔值。当我在车把中显示此值时,我是这样做的: {{#if user.active}}Yes{{else}}No{{/if}} import DS from 'ember-data'; export default DS.Model.extend({ id: DS.attr('integer'), name: DS.attr('string'), email: DS.attr('
{{#if user.active}}Yes{{else}}No{{/if}}
import DS from 'ember-data';
export default DS.Model.extend({
id: DS.attr('integer'),
name: DS.attr('string'),
email: DS.attr('string'),
location: DS.attr('string'),
active: DS.attr('boolean'),
administrator: DS.attr('boolean')
});
{{if user.active 'Yes' 'No'}}
我不确定的是,这是否是正确的方法?我应该创建一个助手吗?有没有其他的“最佳实践”方法
模型如下所示:
{{#if user.active}}Yes{{else}}No{{/if}}
import DS from 'ember-data';
export default DS.Model.extend({
id: DS.attr('integer'),
name: DS.attr('string'),
email: DS.attr('string'),
location: DS.attr('string'),
active: DS.attr('boolean'),
administrator: DS.attr('boolean')
});
{{if user.active 'Yes' 'No'}}
我很感谢所有我能得到的提示:)助手将是一个简单而干净的解决方案
// Helper
Handlebars.registerHelper("printBool", function(b) {
if (b) {
return "Yes";
} else {
return "No";
}
});
// Usage
{{printBool user.active}}
助手应该是一个简单而干净的解决方案
// Helper
Handlebars.registerHelper("printBool", function(b) {
if (b) {
return "Yes";
} else {
return "No";
}
});
// Usage
{{printBool user.active}}
一个较短的替代方法是使用
if
helper的内联版本,如下所示:
{{#if user.active}}Yes{{else}}No{{/if}}
import DS from 'ember-data';
export default DS.Model.extend({
id: DS.attr('integer'),
name: DS.attr('string'),
email: DS.attr('string'),
location: DS.attr('string'),
active: DS.attr('boolean'),
administrator: DS.attr('boolean')
});
{{if user.active 'Yes' 'No'}}
让我们参考官方文档来实现helper
您可以通过在终端中运行ember generate helper is user active
开始。用您想要的名称替换用户处于活动状态的
然后,打开app/helpers/is user active.js
,将代码更改为:
import Ember from 'ember';
export function isUserActive([user]) {
return user.get('active') ? 'Yes' : 'No';
}
export default Ember.Helper.helper(isUserActive);
保存后,您可以像这样开始使用此帮助程序:{{{is user active user}
[编辑:本地化]
为了支持使用ember-i18n
(参见注释)进行本地化,我们需要使用插件提供的。为了使用它,我们需要将助手更改为使用:
user.active
和user.notActive
是组合键,您需要替换自己的。i18n
服务文档中有一个示例,可以在必要时传递用于插值的数据。一个较短的替代方法是使用if
helper的内联版本,如下所示:
{{#if user.active}}Yes{{else}}No{{/if}}
import DS from 'ember-data';
export default DS.Model.extend({
id: DS.attr('integer'),
name: DS.attr('string'),
email: DS.attr('string'),
location: DS.attr('string'),
active: DS.attr('boolean'),
administrator: DS.attr('boolean')
});
{{if user.active 'Yes' 'No'}}
让我们参考官方文档来实现helper
您可以通过在终端中运行ember generate helper is user active
开始。用您想要的名称替换用户处于活动状态的
然后,打开app/helpers/is user active.js
,将代码更改为:
import Ember from 'ember';
export function isUserActive([user]) {
return user.get('active') ? 'Yes' : 'No';
}
export default Ember.Helper.helper(isUserActive);
保存后,您可以像这样开始使用此帮助程序:{{{is user active user}
[编辑:本地化]
为了支持使用ember-i18n
(参见注释)进行本地化,我们需要使用插件提供的。为了使用它,我们需要将助手更改为使用:
user.active
和user.notActive
是组合键,您需要替换自己的。i18n
维修文档中有一个示例,可以在必要时传递数据进行插值。谢谢您的回答。你能提供一些关于如何做到这一点的示例代码,或者给我一个关于如何制作这样一个助手的教程吗?正如我所说,我是Ember和Handlebar的完全初学者:)//Helper handlebar.registerHelper(“printBool”,函数(b){if(b){return“Yes”;}else{return“No”;}});//用法{{printBool user.active}}感谢您的回答。你能提供一些关于如何做到这一点的示例代码,或者给我一个关于如何制作这样一个助手的教程吗?正如我所说,我是Ember和Handlebar的完全初学者:)//Helper handlebar.registerHelper(“printBool”,函数(b){if(b){return“Yes”;}else{return“No”;}});//用法{{printBool user.active}}感谢您提供了一个易于理解的示例。您知道是否可以在助手中使用本地化吗?是的,但是您可能需要使用基于类的语法。您已经在使用本地化插件了吗?是的,我已经开始使用添加的一个使用i18n的示例!非常感谢你,这是非常有帮助的!它不仅解决了我的问题,我还学习了基于类的语法。再次感谢!感谢您提供了一个易于理解的示例。您知道是否可以在助手中使用本地化吗?是的,但是您可能需要使用基于类的语法。您已经在使用本地化插件了吗?是的,我已经开始使用添加的一个使用i18n的示例!非常感谢你,这是非常有帮助的!它不仅解决了我的问题,我还学习了基于类的语法。再次感谢!