gpt4 book ai didi

javascript - 无法跨越 Backbone View 进行路由

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

我正在开发一个博客 app with fiddle here用于自学。我面对问题并逐渐克服它们。

我目前设法渲染了我的初始 View 。但我想要另一种观点来完全填充 body 。从第一个 View 到第二个 View 以及后来的其他 View ,我尝试使用 anchor preventedDefault 并触发当前 View 中命中主干路由器路由的事件方法。从那里到最终构建我的第二个 View 的路由器方法。

到目前为止,我在 js 控制台上收到错误:

[Error] TypeError: undefined is not a function (evaluating 'Backbone.navigate( this.hrefOfPostForm , {trigger: true})')
toPostFormRoute (app.js, line 45)
(anonymous function) ([native code], line 0)
dispatch (jquery.min.js, line 3)
handle (jquery.min.js, line 3)

我的导航代码可能有什么问题?

最佳答案

首先,Backbone.navigate 不存在。 Backbone.history.navigate 可以。但是你还有另一个问题。

查看 Backbone.Router.navigate API : 第一个参数是你想要重新路由到的路由,而不是你想要它命中的函数。这就是您要尝试执行的操作:

var sampleA = function(){};

Backbone.history.navigate(sampleRouteA, {trigger: true});

这是行不通的。您需要定义路由器处理程序,然后导航到指定的路由,Backbone 将处理该路由。以下将(可能)起作用:

var sampleA = function(){};

var someRoutes = Backbone.Router.extend({
routes: {
'sampleRoute/A': 'doSampleA',
'sampleRoute/B': 'doSampleB'
},

'doSampleA': function(){
sampleA();
},

'doSampleB': function(){
},
});

Backbone.history.navigate('sampleRoute/A', {trigger: true});

Here is the corresponding jsFiddle .打开您的开发工具(Chrome 上的 F12),并在您输入 ID 并单击按钮时查看日志。 iframe 的 url 将更改以匹配路由,以及您提供的 id。这就是主干路由的工作方式。

关于javascript - 无法跨越 Backbone View 进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27349990/

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