我刚刚开始学习ember JS,所以这个问题可能听起来很愚蠢。我正在尝试使用ember v 1.12.0设计一个类似网站的博客。现在,我正在使用静态数据作为帖子。它们看起来像这样:
var posts=[{
id:1,
author:{name:"Clark Kent",age:32},
identity: "Superman",
Description: "Alien",
date: new Date('1-1-15'),
body: 'Stands for hope'
},
{
id:2,
author:{name: "Bruce Wayne",age:31},
identity:"Batman",
Description: "Billionaire",
date: new Date('1-1-16'),
body: 'Stands for fear'
}];
我想使这个全局化,以便可以从多个容器访问它,并且当我动态编辑细节时数据仍然存在。我知道这可能不是一个好习惯。但是,现在,我只是想构建这个页面。所以你的帮助将不胜感激。谢谢。
答案 0 :(得分:1)
理想情况下,您可以使用Ember-data,因为这正是它的设计目标。您只需要为数据定义一个简单的模型。请查看ember models的指南。
如果您使用Ember-CLI(建议使用),则包含ember数据,您只需使用命令行创建新模型并将数组添加为固定装置。
ember g model posts
你的ember-cli模型看起来像是:
let Posts = DS.Model.extend({
authorName: DS.attr('string'),
authorAge: DS.attr('string'),
identity: DS.attr('string'),
Description: DS.attr('string'),
body: DS.attr('string'),
date: DS.attr('date')
});
Posts.reopenClass({
FIXTURES: [{
id:1,
authorName: "Clark Kent",
authorAge: 32,
identity: "Superman",
Description: "Alien",
date: new Date('1-1-15'),
body: 'Stands for hope'
},
{
id:2,
authorName: "Bruce Wayne",
authorAge: age:31,
identity:"Batman",
Description: "Billionaire",
date: new Date('1-1-16'),
body: 'Stands for fear'
}];
});
导出默认文档管理器
然后可以在任何地方加载此模型:
this.store.find('posts', 1);
否则你需要从github或bower获取ember-data lib并创建一个简单的模型:
App.ApplicationAdapter = DS.FixtureAdapter;
App.Documenter = DS.Model.extend({
authorName: DS.attr('string'),
authorAge: DS.attr('string'),
identity: DS.attr('string'),
Description: DS.attr('string'),
body: DS.attr('string'),
date: DS.attr('date')
});
App.Documenter.reopenClass({
FIXTURES: [{
id:1,
authorName: "Clark Kent",
authorAge: 32,
identity: "Superman",
Description: "Alien",
date: new Date('1-1-15'),
body: 'Stands for hope'
},
{
id:2,
authorName: "Bruce Wayne",
authorAge: age:31,
identity:"Batman",
Description: "Billionaire",
date: new Date('1-1-16'),
body: 'Stands for fear'
}];
});
再次使用这种方法,您可以致电:
this.store.find('posts', 1);
从商店取回您的数据。
这通常用在路线的模型钩子中:
App.PostsRoute = Ember.Route.extend({
model: function() {
return this.store.find('posts', 1);
}
});
顺便说一句,我建议看看一些ember-cli教程。
最后,如果你真的不想这样做,或者现在就学习ember方式,你可以随时把JSON扔进localStorage。但是如果你打算使用Ember,我真的会把时间花在USE ember上,ember-data与ember非常合作,并且具有很多优点。
答案 1 :(得分:0)
如果您正在学习使用ember,我建议您一边学习如何使用ember-cli。
也就是说,如果你想让变量成为一个全局变量,你可以将它放在index.html
文件的脚本标签或者总是包含的任何其他文件中。取决于你的文件。