Ember.js Ember Cli将记录保存到http模拟服务器
我正在使用Ember cli和它的http模拟功能制作一个小应用程序的原型。我可以读取记录,并从模拟中检索异步关联。那部分很好用。然而,当我试图创建、编辑或删除记录时,我遇到了麻烦。具体来说,Ember.js Ember Cli将记录保存到http模拟服务器,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,我正在使用Ember cli和它的http模拟功能制作一个小应用程序的原型。我可以读取记录,并从模拟中检索异步关联。那部分很好用。然而,当我试图创建、编辑或删除记录时,我遇到了麻烦。具体来说,record.save()承诺被拒绝。我还没有足够的经验来确切地知道为什么会发生这种情况。希望有人在那里有一些实践与此。非常感谢您的帮助。使用ember cli 0.2.0、ember 1.10.0和ember data 1.0.0-beta.15 // adapters/applications.js i
record.save()
承诺被拒绝。我还没有足够的经验来确切地知道为什么会发生这种情况。希望有人在那里有一些实践与此。非常感谢您的帮助。使用ember cli 0.2.0、ember 1.10.0和ember data 1.0.0-beta.15
// adapters/applications.js
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
namespace: 'api',
coalesceFindRequests: true
});
// models/post.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
comments: DS.hasMany('comment', async: true)
});
// controllers/posts/new.js
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
save: function () {
var _this = this;
var name = this.get('model.name');
var post = this.store.createRecord('post', {
name: name
});
post.save().then(function () {
_this.set('message', 'Record Saved');
}, function () {
_this.set('message', 'Promise Rejected')
});
}
}
});
// server/mocks/posts.js
module.exports = function(app) {
var express = require('express');
var postsRouter = express.Router();
var posts = [{
id: 1,
name: 'Foo',
comments: [11, 999]
},
{
id: 2,
name: 'Bar',
comments: [21, 22]
}];
postsRouter.get('/', function(req, res) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.send({
'posts': posts
});
});
postsRouter.post('/', function(req, res) {
res.status(201).end();
});
postsRouter.get('/:id', function(req, res) {
console.log(req.params);
res.send({
'posts': {
id: req.params.id
}
});
});
postsRouter.put('/:id', function(req, res) {
res.send({
'posts': {
id: req.params.id
}
});
});
postsRouter.delete('/:id', function(req, res) {
res.status(204).end();
});
app.use('/api/posts', postsRouter);
};
看来你误解了恩伯文件。他们使用
record
作为您实例化的记录名称的替代。所以在你的情况下,而不是
record.save().then(function() {
您将需要:
post.save().then(function() {
因为post
是您创建的DS.Model
的实例