【发布时间】:2015-03-14 21:48:35
【问题描述】:
我正忙于学习 this Ember.js 教程,但我正在尝试使用 Ember 2.0 的处理方式(模块,使用 Ember CLI 和 ember-cli-rails gem)来实现它。这相当困难,因为没有任何 Ember 指南遵循这些约定。
按照教程,我将 Rails 用作 JSON API,看起来一切正常,就提供正确的 JSON 响应而言。问题是,我无法让我的leads 模型工作。
我收到来自ember.debug.js 的TypeError: Cannot read property 'typeKey' of undefined 错误。我还收到来自ember.adapter.js 的undefined is not a function 错误
我的项目如下:
app/store.js
import DS from 'ember-data';
export default DS.RESTAdapter.reopen({
url: 'https://localhost:3000',
namespace: 'api/1'
});
app/router.js
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.resource('leads', { path: '/' });
});
export default Router;
app/adapters/application.js
import DS from "ember-data";
var ApplicationAdapter = DS.ActiveModelAdapter.extend({
host: 'http://localhost:3000',
namespace: 'api/v1'
});
export default ApplicationAdapter;
app/models/lead.js
import DS from 'ember-data';
export default DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
email: DS.attr('string'),
phone: DS.attr('string'),
status: DS.attr('string', { defaultValue: 'new' }),
notes: DS.attr('string'),
});
app/routes/leads.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() { return this.store.find('lead') }
});
我没有看到任何对 Rails 的 HTTP 请求,所以我认为它甚至在尝试使用 API 之前就中断了。谁能指出我在这里做错了什么?
【问题讨论】:
-
您在浏览器控制台中看到什么了吗?
-
是的 - 从顶部开始的第三段列出了我在 Chrome 控制台中遇到的两个错误。
-
据我所知,这段代码没有任何问题。你能在小提琴中重现问题吗?顺便说一句,您为什么要重新打开 RESTAdapter?这很危险。
-
根据该教程,这是您在 store.js 中配置 Ember 数据的方式 - 使用重新打开。还有其他方法吗?我已将整个项目添加到此处的 Git 存储库:github.com/constantm/ember-crm/tree/master/frontend。我不知道如何让它与小提琴一起使用。 :)
标签: ruby-on-rails ember.js ember-data