5

以下是我正在使用的框架:

  • 代码点火器
  • Codeigniter REST API
  • 需要.js
  • 骨干网.js

运行应用程序:

  • htaccess 文件通过 Codeigniter index.php 文件重定向所有内容。
  • Codeigniter 中有一个默认路由设置来调用“开始”控制器。
  • Start Controller 调用 Start View(Codeigniter 中的唯一视图)。
  • Start View 保存整个网站的模板并调用启动 Require.js
  • Require.js 启动 Backbone,应用程序按预期工作。

问题:路由到其他主干视图:

  • 现在我想通过主干路由到其他主干“视图”。
  • 问题是当我尝试在 HREF 中提供类似“localhost/otherPage”的链接时,htaccess 文件会触发,并且 Codeigniter 尝试找到该控制器,我得到了 Codeigniter 生成的 404。
  • 我尝试使用`app.navigate("otherPage", {trigger: true});`在Backbone中强制路由而不是HREF,但我得到了由Codeigniter生成的相同404错误。

我应该采取什么方向:

  • 我想继续使用 Codeigniter 的 RESTFUL API、模型和一些特殊的验证功能。
  • 我还想在前端使用 Backbone 和 Require。
  • 我可以将 htacess 重定向更改为启动 Require 和 Backbone 的 index.html 文件吗?如果我使用这种方法,Codeigniter RESTFUL API 控制器是否仍能正常触发?
  • 我是否在 Codeigniter 中为每个页面创建一个视图并让每个页面开始 Require + Backbone 为每个视图创建一个新视图?
  • 我很快就会研究 Node.js。我是否应该直接丢弃框架的 Codeigniter 方面并全力以赴地使用 Node.js?

非常感谢任何指导。

4

2 回答 2

2

如果您还没有这样做,您可能希望通过 Backbone 通过主题标签更改进行路由(这是他的正常行为,pushState:false),因为修改主题标签绝不会导致服务器调用,从而忽略 Codeigniter 的路由器。
在您的示例中,您希望导航到localhost/#otherPage
然后使用 Codeigniter 的路由器进行 ajax REST 调用。

于 2013-03-28T16:32:54.400 回答
1

阻止浏览器使用 HREF 链接提交 http 请求的另一种方法是使用 javascript 和 jquery 覆盖它。如果您不想像 Loamhoof 建议的那样总是使用主题标签,这可能会很有用。

例子:

$('#linkID').on('click', function(event) {

    event.preventDefault();

    backboneRouter.navigate($(event.currentTarget).attr('href'), { trigger:true });

});
于 2013-04-03T14:29:51.690 回答