如何在 Ember Handlebar 中将字符串解析为 JSON
How to parse string to JSON in Ember Handlebar
我正在使用 Ember 2.16.0,我可以将字符串导入 Handlebar,但是当我尝试访问 JSON 属性 时,我没有得到预期的结果。是否有一个助手可以将字符串转换为 Handlebar 模板中的 JSON?
一般来说,Handlebars 的目的是将尽可能多的逻辑保留在模板之外,因此更常见的是在 Ember 中,您可以在 class 中执行 JSON 解析,像控制器或组件。这样,当数据被发送到模板时,它已经是您需要的最终数据格式了。这是你的选择吗?
我最终使用类似这样的方法使数据可用于组件模板。不能 100% 确定这是否是最佳方法。
export default Component.extend({
init() {
this._super(...arguments);
this.set('schemasJson', Ember.$.parseJSON(this.schemasString));
}
});
类似于 OP 发布的答案,除了我将 schemaJson
属性 计算为 属性 以便如果 schemasString
更改,它会自动更新:
export default Component.extend({
schemasJson: computed('schemasString', function() {
return JSON.parse(this.schemasString);
}
});
我正在使用 Ember 2.16.0,我可以将字符串导入 Handlebar,但是当我尝试访问 JSON 属性 时,我没有得到预期的结果。是否有一个助手可以将字符串转换为 Handlebar 模板中的 JSON?
一般来说,Handlebars 的目的是将尽可能多的逻辑保留在模板之外,因此更常见的是在 Ember 中,您可以在 class 中执行 JSON 解析,像控制器或组件。这样,当数据被发送到模板时,它已经是您需要的最终数据格式了。这是你的选择吗?
我最终使用类似这样的方法使数据可用于组件模板。不能 100% 确定这是否是最佳方法。
export default Component.extend({
init() {
this._super(...arguments);
this.set('schemasJson', Ember.$.parseJSON(this.schemasString));
}
});
类似于 OP 发布的答案,除了我将 schemaJson
属性 计算为 属性 以便如果 schemasString
更改,它会自动更新:
export default Component.extend({
schemasJson: computed('schemasString', function() {
return JSON.parse(this.schemasString);
}
});