Javascript 余烬:无法读取属性';型号名称';未定义的
我们正在使用Javascript 余烬:无法读取属性';型号名称';未定义的,javascript,ember.js,ember-data,sails.js,ember-cli,Javascript,Ember.js,Ember Data,Sails.js,Ember Cli,我们正在使用ember 1.13.5、ember data 1.13.7和sails 0.11作为后端 完整错误是:无法读取成员$data$lib$system$store$$Service.extend.serializer处未定义的属性'modelName' 我通过dev工具跟踪代码,找到了下图所示的代码。它显示定义了modelName 这是我的setup.js控制器中调用的实际代码: _this.store.query('business-account', {user: user.ge
ember 1.13.5
、ember data 1.13.7
和sails 0.11
作为后端
完整错误是:无法读取成员$data$lib$system$store$$Service.extend.serializer处未定义的属性'modelName'
我通过dev工具跟踪代码,找到了下图所示的代码。它显示定义了modelName
这是我的setup.js
控制器中调用的实际代码:
_this.store.query('business-account', {user: user.get('id')})
.then(function(businessAccount) {
debugger;
}, function(err) {
debugger;
});
上述操作会引发以下错误:
TypeError: Cannot read property 'modelName' of undefined
at ember$data$lib$system$store$$Service.extend.serializerFor (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:83513:35)
at https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:106657:34
at https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:86465:20
at Map.forEach.cb (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:27626:11)
at OrderedSet.forEach (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:27409:11)
at Map.forEach (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:27630:18)
at Function.ember$data$lib$system$model$$default.reopenClass.eachRelationship (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:86464:83)
at DS.default.RESTSerializer.extend._extractEmbeddedRecords (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:106650:12)
at DS.default.RESTSerializer.extend.normalize (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:106635:19)
at apply (https://192.168.10.10:4200/assets/vendor-844725f1b0311e7dd3df737ef28a9edc.js:32729:18)
更新:
我还有一个名为businessAccount
app/models/business account.js
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
business: DS.belongsTo('business', { async: true }),
user: DS.belongsTo('user', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
active: DS.attr('boolean'),
kind: DS.attr('string'),
ROP: DS.attr('string'),
ssn: DS.attr('string'),
biography: DS.attr('string'),
totalPaidToDate: DS.attr('number'),
phoneNumbers: DS.attr('string'),
oneWordDescriptions: DS.attr('string'),
modesOfTransport: DS.attr('string'),
address: DS.attr('string'),
availabilities: DS.attr('string'),
exclusionTImes: DS.attr('string')
});
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
businessAccounts: DS.hasMany('businessAccount', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
name: DS.attr('string'),
legalBusinessName: DS.attr('string'),
timezone: DS.attr('string'),
emails: DS.attr('string'),
phoneNumbers: DS.attr('string'),
availabilities: DS.attr('string'),
exclusionTimes: DS.attr('string'),
holidays: DS.attr('string'),
address: DS.attr('string')
});
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
businessAccounts: DS.hasMany('businessAccount', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
firstName: DS.attr('string'),
lastName: DS.attr('string'),
email: DS.attr('string'),
phoneNumbers: DS.attr('string'),
secondaryContactInfo: DS.attr('string'),
address: DS.attr('string')
});
business.js
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
business: DS.belongsTo('business', { async: true }),
user: DS.belongsTo('user', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
active: DS.attr('boolean'),
kind: DS.attr('string'),
ROP: DS.attr('string'),
ssn: DS.attr('string'),
biography: DS.attr('string'),
totalPaidToDate: DS.attr('number'),
phoneNumbers: DS.attr('string'),
oneWordDescriptions: DS.attr('string'),
modesOfTransport: DS.attr('string'),
address: DS.attr('string'),
availabilities: DS.attr('string'),
exclusionTImes: DS.attr('string')
});
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
businessAccounts: DS.hasMany('businessAccount', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
name: DS.attr('string'),
legalBusinessName: DS.attr('string'),
timezone: DS.attr('string'),
emails: DS.attr('string'),
phoneNumbers: DS.attr('string'),
availabilities: DS.attr('string'),
exclusionTimes: DS.attr('string'),
holidays: DS.attr('string'),
address: DS.attr('string')
});
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
businessAccounts: DS.hasMany('businessAccount', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
firstName: DS.attr('string'),
lastName: DS.attr('string'),
email: DS.attr('string'),
phoneNumbers: DS.attr('string'),
secondaryContactInfo: DS.attr('string'),
address: DS.attr('string')
});
user.js
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
business: DS.belongsTo('business', { async: true }),
user: DS.belongsTo('user', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
active: DS.attr('boolean'),
kind: DS.attr('string'),
ROP: DS.attr('string'),
ssn: DS.attr('string'),
biography: DS.attr('string'),
totalPaidToDate: DS.attr('number'),
phoneNumbers: DS.attr('string'),
oneWordDescriptions: DS.attr('string'),
modesOfTransport: DS.attr('string'),
address: DS.attr('string'),
availabilities: DS.attr('string'),
exclusionTImes: DS.attr('string')
});
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
businessAccounts: DS.hasMany('businessAccount', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
name: DS.attr('string'),
legalBusinessName: DS.attr('string'),
timezone: DS.attr('string'),
emails: DS.attr('string'),
phoneNumbers: DS.attr('string'),
availabilities: DS.attr('string'),
exclusionTimes: DS.attr('string'),
holidays: DS.attr('string'),
address: DS.attr('string')
});
import DS from 'ember-data';
export default DS.Model.extend({
/////////////////////////////
// ASSOCIATIONS
/////////////////////////////
businessAccounts: DS.hasMany('businessAccount', { async: true }),
/////////////////////////////
// ATTRIBUTES
/////////////////////////////
firstName: DS.attr('string'),
lastName: DS.attr('string'),
email: DS.attr('string'),
phoneNumbers: DS.attr('string'),
secondaryContactInfo: DS.attr('string'),
address: DS.attr('string')
});
json
sails的响应:
[
{
"business": {
"name": "businessName",
"ein": null,
"website": null,
"primaryContact": null,
"bankInformation": null,
"legalBusinessName": null,
"timezone": null,
"emails": null,
"phoneNumbers": null,
"availabilities": null,
"exclusionTimes": null,
"holidays": null,
"address": null,
"archived": false,
"id": 1,
"createdAt": "2015-07-31T11:22:26.000Z",
"updatedAt": "2015-07-31T11:22:26.000Z"
},
"user": {
"firstName": "Monty",
"lastName": "Lennie",
"email": null,
"phoneNumbers": null,
"secondaryContactInfo": null,
"address": null,
"archived": false,
"id": 1,
"createdAt": "2015-07-31T11:22:25.000Z",
"updatedAt": "2015-07-31T11:22:25.000Z",
"auth": 1
},
"status": null,
"kind": null,
"active": false,
"ROP": null,
"ssn": null,
"biography": null,
"totalPaidToDate": null,
"phoneNumbers": null,
"oneWordDescriptions": null,
"modesOfTransport": null,
"address": null,
"availabilities": null,
"exclusionTimes": null,
"archived": false,
"id": 1,
"createdAt": "2015-07-31T11:22:26.000Z",
"updatedAt": "2015-07-31T11:22:26.000Z"
}
]
你有名为business account的模型吗?@Kitler是的,我有。我刚刚用它更新了问题。关联模型也存在吗?JSON响应是什么?@Kitler是的,关联模型缺少一行。我会加上它,看看它是否有效。