gpt4 book ai didi

javascript - Ember 数据首先从 Store 获取记录,而不是带参数的 API

转载 作者:行者123 更新时间:2023-11-28 00:09:38 47 4
gpt4 key购买 nike

我正在尝试根据 slug 而不是 ember cli 应用程序中的路线 ID 加载一些数据。我已经创建了一条路线,slug 参数被正确传递到模型 Hook ,并且我已经在存储中拥有记录数据,因为一些数据在初始化时被引导到应用程序中。然而,商店总是查看 api 路由,而不仅仅是获取本地版本。我怎样才能防止这种情况发生?

路由器.js

this.resource('vendor', {path: '/:slug'}, function () {
this.resource('category', {path: '/:vendor_id/categories/:category_id'});
this.resource('product', {path: '/:vendor_id/products/:product_id'});
});

路由/vendor.js

export default Ember.Route.extend({
model: function(params) {
return this.store.query('vendor', {slug: params.slug});
}
});

然后在控制台中我可以看到 api 调用被触发

http://localhost:4200/api/vendors?slug={slug from params} 404 (Not Found)

我确实计划构建这个端点,但我很好奇为什么当我可以看到 ember 存储中的数据时它会查看 API。

最佳答案

您正在寻找 store.filter,但不包含会触发网络调用的 query 参数。

export default Ember.Route.extend({
model: function(params) {
return this.store.filter('vendor', function(vendor) {
return vendor.get('slug') === params.slug;
});
}
});

顺便说一句,这将使模型保持与过滤器匹配的新记录的更新,但它们可能会添加到商店中。

关于javascript - Ember 数据首先从 Store 获取记录,而不是带参数的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014301/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com