小编Tre*_*cki的帖子

设置rake-pipeline以与Google App Engine一起使用

所以这就是我想要做的.我正在构建一个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的做事方式.

ruby handlebars.js

8
推荐指数
2
解决办法
3960
查看次数

Ember,Ember Data和MongoDB的_id

我已经看到了这个问题谈过,但我仍然有粗暴对待蒙戈的问题_idid.我使用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)

mongoose mongodb ember.js ember-data

8
推荐指数
3
解决办法
4260
查看次数

在Ember中保存到服务器时更改模型的JSON根目录

我有一个博客应用程序,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)

javascript ember.js ember-data

7
推荐指数
1
解决办法
1410
查看次数

回滚父记录不会删除子记录

回滚父记录似乎不会删除可能已添加到其中的任何新子记录.不确定这是否是错误或功能.

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)

ember.js ember-data

5
推荐指数
1
解决办法
131
查看次数