我正在尝试创建一个空记录和一个空关联记录。
这里有一个小提琴:http://jsfiddle.net/brancusi/NQKvy/629/
App = Ember.Application.create({});
App.IndexRoute = Ember.Route.extend({
model: function(){
return this.createEmptyInventory();
},
createEmptyInventory: function(){
var stockLevels = []
var product1 = this.store.createRecord('product', {name:"Cheese Pizza"});
var product2 = this.store.createRecord('product', {name:"Mushroom Pizza"});
var product3 = this.store.createRecord('product', {name:"Calzone"});
var products = [product1, product2, product3]
var stockLevelList = []
scope = this;
Ember.EnumerableUtils.forEach(products, function(item){
var stockLevel = scope.store.createRecord('product_stock_level', {
product:item,
quantity:0
});
stockLevelList.addObject(stockLevel);
});
var inventory = this.store.createRecord('inventory', {
testProp:"TestVal",
productStockItems:stockLevelList
})
console.log(stockLevelList);
console.log(inventory.get('productStockLevels'));
return inventory;
}
});
// Models
App.Inventory = DS.Model.extend({
productStockLevels:DS.hasMany('product_stock_level'),
testprop:DS.attr('string')
});
App.ProductStockLevel = DS.Model.extend({
inventory:DS.belongsTo('inventory'),
product:DS.belongsTo('product'),
quantity:5
});
App.Product = DS.Model.extend({
productStockLevels:DS.hasMany('product_stock_level'),
name:DS.attr('string')
});所以我注意到没有ID,我猜这就是ember所有关联的方式?
我应该如何生成这样的临时记录?
如果用户放弃了这一点,我不想将任何东西持久化到DB,我只想转储记录。
我基本上是在模拟Rails: Inventory.new
发布于 2014-02-05 10:58:21
问题不在于产品没有id,而在于您的记录数组。
我不确定是否可以先创建一个记录数组,然后在createRecord上使用它作为属性。从来没有做过这件事,但还没有和安博在一起。但是如果可能的话,我认为它不可能是一个正常的数组,而必须是一个DS.ManyArray或DS.RecordArray或者类似的东西。
我正在使用另一种方法:首先创建没有子记录的父记录,然后使用pushObject将子记录推送给父记录。因此,我会像这样修改createEmptyInventory的代码:
createEmptyInventory: function(){
var stockLevels = []
var product1 = this.store.createRecord('product', {name:"Cheese Pizza"});
var product2 = this.store.createRecord('product', {name:"Mushroom Pizza"});
var product3 = this.store.createRecord('product', {name:"Calzone"});
var products = [product1, product2, product3]
scope = this;
var inventory = this.store.createRecord('inventory', {
testProp:"TestVal"
})
Ember.EnumerableUtils.forEach(products, function(item){
var stockLevel = scope.store.createRecord('product_stock_level', {
product:item,
quantity:0
});
inventory.get('productStockLevels').pushObject(stockLevel);
});
return inventory;
}我对您的JSFiddle进行了分叉和更新,以显示它是否有效。还修正了视图中的一个小错误:http://jsfiddle.net/4YAVq/
https://stackoverflow.com/questions/21567188
复制相似问题