codeigniter - 在 CodeIgniter Web 应用程序的不同页面上使用 RequireJS 和 Backbone

标签 codeigniter backbone.js requirejs

我正在构建一个 Web 应用程序,后面是 CodeIgniter,前面是 Backbone/RequireJS。因此,它不是一个单页的 web 应用程序,而是仍然使用 CI 处理许多 Controller 操作,并在不同时间使用 Backbone 处理各种 View 。我有这样的 RequireJS/Backbone 设置:

<script type="text/javascript" data-main="main" src="require.js"></script>

main.js 看起来像:
require.config({
  paths: {
           jquery: "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min",
           underscore: "libs/underscore",
           backbone: "libs/backbone",
           //Lots of other stuff
          },
  shim: {
           backbone: {
              deps: ["underscore", "jquery"],
          }
          // lots of other stuff
  }
  });

require(['views/app'], function(AppView){
    var app_view = new AppView;
});

Main.js 加载在我的主模板中,即在每个页面上,然后加载一堆在整个站点/应用程序中通用的 View - 标题、导航等。

但是在不同的页面上,除了常见的 View 之外,我还想加载不同的 View 。因此,例如,在一个名为“发布”的页面上 - 本身几乎是一个应用程序 - 我这样做:
<script type="text/javascript" src="publish.js"></script>

它在 main.js 之后加载,看起来像:
//publish.js
 require(['views/publishview], function(PublishView){
 var publishView = new PublishView;
 });

基本上,它有一半的时间有效,另一半(当我刷新时)我在所有事情上都得到 404。

那么有没有一种巧妙的方法可以将我的基本需求配置用于所有内容,但在不同时间也需要不同的部分?如果整个过程都是 SPA,这似乎很容易做到,但对我来说,应用程序的很大一部分仍然使用 CodeIgniter。

很抱歉没有更好地表达这一点。

最佳答案

不确定这是否是正确的方法,但我会怎么做:

模板 (php)

<script type="text/javascript">
var myApp = {};
myApp.section = '<?= $section ?>'; //for exambple 'someSection'
</script>
<script type="text/javascript" data-main="main" src="require.js"></script>

然后,使用类似的东西:

(主要.js)
var requires = {
someSection: {files: ['views/app'], handler: function(AppView){
    var app_view = new AppView;
}}
};

var myRequire = requires[myApp.section] || null;
if(myRequire) require(myRequire.files, myRequire.handler);

或者...使用 window.location.pathname 值代替 myApp.section

关于codeigniter - 在 CodeIgniter Web 应用程序的不同页面上使用 RequireJS 和 Backbone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11478600/

相关文章:

php - CodeIgniter 显示多选而不是下拉

javascript - IE8 无法识别 Backbone.js 事件

javascript - 将 RequireJS 与遗留代码一起使用

javascript - 当配置依赖于 RequireJS 时使用 RequireJS 配置模块

php - 我想要使​​用某些条件进行排名

javascript - 使用ajax javascript显示数据库中的数据

php - 使用 php 增加数据库值

javascript - 在 Backbone View 中编写下拉菜单

javascript - requirejs vs google javascript 闭包依赖管理

requirejs - 使用 Handlebars.js 和 require.js 的递归部分