所以这就是我想要做的.我正在构建一个ember.js应用程序,在GAE上运行java后端.
我正在使用把手,但我希望它们分成单独的文件,而不是全部粘贴到index.html中.
通过ember.js irc,我和minispade一起打开了rake-pipeline
随着Web过滤器和自定义手柄过滤器,我开始构建资产文件.我不知道Ruby,或者gem文件等.
因此,我正在尝试找出能够动态编译我的coffeescript/handlebars文件的最佳方法,minispade,但在开发模式下保持单个文件可访问,以便我可以调试它们.令人困难的是,rake管道运行在与GAE不同的端口上.所以我不确定如何处理这个问题.在开发期间,我是否将GAE中的索引文件指向9292端口(rakep)中的单个文件,但在生产模式下是否指向完全连接的版本?我不确定.
所以我试图在这里做到这一点:https://gist.github.com/1495740 只有一个由'build'标志触发的部分.甚至不确定这是否有效.
我知道这里有很多混乱.道歉,就像我说的那样,我甚至不熟悉Ruby的做事方式.
我已经看到了这个问题谈过,但我仍然有粗暴对待蒙戈的问题_id到id.我使用mongoose作为我的ORM,虽然它有虚拟,我似乎无法让它正常工作.以下是我的猫鼬模型中的内容.
尝试从后端修复
mongoose = require 'mongoose'
Schema = mongoose.Schema
ObjectId = Schema.ObjectId
ApartmentSchema = new Schema
body: String
date: { type: Date, default: Date.now }
deleted: {type: Boolean, default: false}
saved: {type: Boolean, default: false}
visited: {type: Boolean, default: false}
email: String
phoneNumber: String
href: String
ApartmentSchema.virtual('id').get -> return @_id
module.exports = mongoose.model 'Apartment', ApartmentSchema
Run Code Online (Sandbox Code Playgroud)
当我在Express中创建这个模型的新实例时,我可以查看apt.id并获取id,但是当我将响应发送到客户端时,我只是拥有_id而不是id.
我尝试的第二个解决方案是创建一个计算属性,id但无论出于什么原因,ember都不喜欢这个.这里有两个问题.Ember不尊重被称为id或至少不再被计算的属性.这就是我的余烬数据模型.
尝试从前端修复它
App.Apartment = DS.Model.extend({
body: DS.attr('string'),
date: DS.attr('date'),
deleted: …Run Code Online (Sandbox Code Playgroud) 我有一个博客应用程序,API调用用户"用户",但我的Ember模型是"作者".
App.Author = DS.Model.extend({
name: DS.attr(),
posts: DS.hasMany('post', {async: true}),
email: DS.attr()
});
Run Code Online (Sandbox Code Playgroud)
我将传入的JSON映射到AuthorSerializer:
App.AuthorSerializer = DS.RESTSerializer.extend({
normalizePayload: function(type, payload) {
return this.translateRootKey('user', 'author', payload);
},
translateRootKey: function(server_word, client_word, payload) {
var response = {},
key = payload[server_word] ? client_word : Ember.String.pluralize(client_word),
value = payload[server_word] ? payload[server_word] : payload[Ember.String.pluralize(server_word)];
response[key] = value;
return response;
}
});
Run Code Online (Sandbox Code Playgroud)
但是当我坚持服务器时,我无法弄清楚如何更改POST/PUT的根目录.我希望我的root是"用户"或"用户"(取决于具体情况).服务器目前从Ember获取此参数:
{"author"=>{"name"=>"asdf", "email"=>"asdf"}, "user"=>{}}
Run Code Online (Sandbox Code Playgroud)
在与服务器通信时,如何告诉Ember使用"user/s"作为我的密钥名称?
例:
{"user"=>{"name"=>"asdf", "email"=>"asdf"}}
Run Code Online (Sandbox Code Playgroud) 回滚父记录似乎不会删除可能已添加到其中的任何新子记录.不确定这是否是错误或功能.
App.Company = DS.Model.extend({
name: DS.attr('string'),
employees: DS.hasMany('App.Employee')
});
App.Employee = DS.Model.extend({
name: DS.attr('string'),
company: DS.belongsTo('App.Company')
})
var company = App.Company.find(1);
//Initially: company.get('employees.length') => 0
var employee = company.get('employees').createRecord();
//Now: company.get('employees.length') => 1
employee.get('transaction').rollback();
//Still: company.get('employees.length') =>1
//Also: employee.get('isDeleted') => true
company.get('transaction').rollback();
//Even now: company.get('employees.length') =>1
//How do I rollback such that company.get('employees.length') == 0
Run Code Online (Sandbox Code Playgroud)