所以我遇到了一些复杂的余烬问题,我似乎无法在任何地方找到答案,虽然这可能会得到很晚的回答,但希望它有助于某人。
此情况的用例
我正在创建一个产品,在这个产品中它有一个属于它的图像。它也有标题和描述。但更独特的是它有很多这种T恤的变化,它有小号,中号和大号,每种变化都有自己的数量和价格。 因此,在创建产品时,我必须创建产品字段,图像字段和许多变体!最多3个确切的。然后当我提交表格时,控制器处理所有3种变化和表格。
这就是我做的。在我运行验证功能
之后$('.variation').manageSize('destroy');//Grabs array in localstorage containing the objects
function create(){
console.log('Create the product now');
var product = prop.store.createRecord('product', {
name: $("input[name='name']").val(),
color: null,
description:$("textarea[name='description']").val(),
createdAt:''
});
var base64 = $('.cropper').cropper("getDataURL");
var image = prop.store.createRecord('image',{
imgSrc:base64.attr('src')
});
var variation;
for(var i = 0; i < variationCheck.length; i++) {
console.log(variationCheck.length);
window[variation+i] = prop.store.createRecord('variation',{
size: variationCheck[i].size,
quantity: variationCheck[i].quantity,
price: variationCheck[i].price,
shippingPrice: variationCheck[i].shipping
});
window[variation+i].save();
}
// Save the new model
image.save();
product.save();
$('.variation').manageSize('destroy');
}
},
我得到一个错误可能是因为这根本不起作用 未捕获的TypeError:无法分配给[object global]的只读属性“NaN” 但我想,即使有错误的代码,我也无法在一个控制器中多次在createRecord上找到任何内容。甚至如何正确创建记录并反映它在模型中的外观。
产品型号
Ember.Product = DS.Model.extend({
shop: DS.belongsTo('store'),
name: DS.attr('string'),
color: DS.attr('string'),
description: DS.attr('string'),
images: DS.hasMany('image', {embedded: 'always'}),
token: DS.hasMany('token', {embedded: 'always'}),
variations: DS.hasMany('variation', {embedded: 'always'}),
productCategory: DS.belongsTo('productCategory'),
likes: DS.hasMany('like',{embedded: 'always'}),
createdAt: DS.attr('date'),
updatedAt: DS.attr('date'),
publishedAt: DS.attr('date'),
postDate: DS.attr('date'),
postCounter: DS.attr('number'),
published: DS.attr('boolean')
});
答案 0 :(得分:0)
这里可能存在多个错误,但错误:
未捕获的TypeError:无法分配给只读属性&#39; NaN&#39; [object global]
问题是你做了
var variation;
for(var i = 0; i < variationCheck.length; i++) {
window[variation+i] = ...
变化未定义,因此变体+ i是NaN,因此您尝试重复分配给窗口[NaN]。