也许对我来说,使用所有代码都位于 app.js 中的常规 Ember 应用程序执行此操作会容易得多。但由于我使用的是 Ember CLI,我无法在我的 Route 中访问我的模型。我仍在尝试学习如何使用 Ember CLI,所以请帮助我。
因为我只想触发 AJAX 调用并让数据在我的 UI 上呈现,所以我下载了 Ember 模型库并将其添加到我的项目中。我认为不需要使用 Ember Data。这是我指的 Ember 模型文档:https ://github.com/ebryn/ember-model#example-usage 。话虽如此,这是 Ember CLI 提出的我的目录结构:
|-app
|-controllers
| |-customers.js
|-models
| |-customers.js
|-routes
| |-customers.js
|-templates
| |-customers.hbs
|-app.js
|-index.html
|-main.js
|-router.js
这是对实际项目结构的更简单的表示,我只需要关注这个问题。正如 Ember 模型文档中所建议的那样,我将以下代码添加到我的客户模型 (model\customers.js) 中:
export default Ember.Model.extend({
nameid: attr(),
firstname: attr(),
middlename: attr(),
lastname: attr(),
prefixname: attr(),
suffixname: attr()
});
this.url = "http://restapi/api/customers";
this.adapter = Ember.RESTAdapter.create();
请注意,我必须执行“导出默认值”而不是“App.Customers = Ember.Model.extend...”。这是 Ember CLI 约定。因此,当我尝试访问在客户路线中创建的模型时,我收到错误“加载路线时出错:ReferenceError:未定义应用程序”..
客户路线代码:
export default Ember.Route.extend({
model: function () {
App.Customers.find();
},
actions: {
addnew: function(){
//logic of saving edited customer
alert('customer created!');
}
}
});
我试过 this.model() - 返回 supperWrapper 类型的对象和 this.modelFor() - 返回 null。
请建议如何在其路由中获取我的模型的句柄,以便我可以执行 Ember Model 提供的开箱即用的 CRUD 操作。
谢谢!