gpt4 book ai didi

javascript - 主干模型获取 - 模拟后端

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

我有一个模型,我正在尝试使用 model.fetch(); 获取它。模型的 urlRoot 设置为我的应用程序的后端(“/backend/item”),但现在我没有后端环境。所以我决定 mock 结果。我在路由器中添加了一条路由:

"backend/item/:id": "data_getItem"

和一个函数:

data_getItem: function(id) {
console.log("data_getItem: "+ id);
return {
animals: [
{
name: 'flying cat',
type: 'none'
}
]
};
}

运行应用程序时,我可以看到 ajax 调用“http://127.0.0.1:8000/backend/item/1”,但控制台为空,并且出现错误(fetch 函数将我返回到错误回调)。这是为什么?如何模拟后端?

EDIT Actually @rjz helped me with the things I want to do, but I really want to know if an ajax call can be catched by backbone router. My intuition tells me not because ajax call cannot execute backbone client code and therefore the router concept is not relevant. Am I right?..

最佳答案

我认为您不想使用 Backbone.Router 来捕获 AJAX 调用。如果您的目标是模拟项目的后端,则应该使用测试框架来执行此操作。一个糟糕而肮脏的方法是使用类似的东西:

或者如果你想做一些更像单元测试的事情,我会看看 Jasmine及其 AJAX mocking library .

更新以回答您的问题:

简短的回答是否定的,Backbone.Router 无法拦截 AJAX 调用。

这是因为路由器通过监听与 URL 相关的事件来工作。具体来说,路由器正在监听 hashchangepopstate 事件(取决于您是否使用 pushState)。由于 AJAX 调用不与 URL 交互,因此它们几乎完全绕过了这个系统。

关于javascript - 主干模型获取 - 模拟后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13336396/

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