ember-data-url-templates - 如何在Ember 3中使用快照API
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ember-data-url-templates - 如何在Ember 3中使用快照API相关的知识,希望对你有一定的参考价值。
在附加组件wi-ki中,我们可以使用belongsTo来发现模型之间的关系:
urlSegments: {
postId: function(type, id, snapshot, query) {
return snapshot.belongsTo('post', { id: true });
},
},
但我在Ember 3 API文档中找不到更多内容。怎么做 ?更多,我收到错误:
Uncaught TypeError: snapshot.belongsTo is not a function
at Class.shopId (shop-language.js:13)
at url-templates.js:39
at subFunction (uri-templates.js:103)
在适配器中使用它时:
#adapters/shop-language.js
import ApplicationAdapter from './application';
import UrlTemplates from "ember-data-url-templates";
export default ApplicationAdapter.extend(UrlTemplates, {
findAllUrlTemplate: '/shops/{shopId}/languages',
createRecordUrlTemplate: '/shops/{shopId}/languages',
urlSegments: {
shopId: function(type, id, snapshot, query) {
return snapshot.belongsTo('shop', { id: true });
},
},
});
答案
我想出了如何使用它与description
belongsTo
的shop
模型。这是description.js
适配器:
import ApplicationAdapter from './application';
import UrlTemplates from "ember-data-url-templates";
export default ApplicationAdapter.extend(UrlTemplates, {
urlTemplate: '{+host}/shops/{shopId}/descriptions',
findAllUrlTemplate: '{+host}/shops/{shopId}/descriptions',
createRecordUrlTemplate: '{+host}/shops/{shopId}/descriptions',
updateRecordUrlTemplate: '{+host}/shops/{shopId}/descriptions/{id}',
urlSegments: {
shopId: function(type, id, snapshot, query) {
if (query && query.shop_identifier) {
return query.shop_identifier;
}
return snapshot.belongsTo('shop').attr('identifier');
},
id: function(type, id, snapshot) {
return snapshot.id;
}
}
});
在上面的例子中,我使用另一个商店属性 - identifier
,但你可以通过商店的id
来代替。希望这可以帮助。
以上是关于ember-data-url-templates - 如何在Ember 3中使用快照API的主要内容,如果未能解决你的问题,请参考以下文章