BackboneJS与Codeigniter

时间:2014-01-16 09:23:24

标签: javascript php codeigniter backbone.js requirejs

我有一个使用Codeigniter的应用程序构建,我想使用BackboneJS作为我的前端。我已经构建了一个API,以便我可以使用我的数据库中返回的JSON,所以我唯一需要的是在我的Codeigniter设置中集成Backbone。我还有一个Backbone应用程序,在那里我创建了我需要的大部分视图。所以,在我的Backbone的index.php中,我有:

<script data-main="js/config" src="js/lib/requirejs/require.js"></script>
<script>
    require(['config'], function(config) {
        require(['app/mainpage']);
});
</script>

同样在我的index.php中,我有div所有我的骨干视图呈现的地方。

我想知道,我如何在Codeigniter中集成它。我在Codeigniter中的文件/文件夹结构是典型的CI设置:

  - application
    - config
    - controllers
    - models
    - views
  - assets
    - css
    - img
  - system
index.php
.htaccess

那么最好的方法是什么?我应该创建一个额外的js - 文件夹,然后将我的主干设置放在该文件夹中吗?如果是这样,那么上面显示的<script> - 代码怎么样?在哪里放置它?

提前致谢

1 个答案:

答案 0 :(得分:0)

你刚才问过这个问题,所以我不知道你是否还在寻找答案,但是因为我偶尔会使用AngularJS进行类似的设置,我建议:

  1. 加载包含所有标题内容的视图作为布局。我使用this layout
  2. 将前端客户端JS加载到/application/views/site/header.php中的include中,请参阅this repo for example
  3. 一旦你加载了所有库,你就可以加载每个单独的JS应用程序(Angular使用模块)或使用一个加载部分的应用程序(我假设骨干有这个功能,Angular也是如此)。

    哦,还有一个非常小的陷阱:Codeigniter不能很好地支持JSON帖子,所以RESTful API并不容易开箱即用。如果您需要接收JSON帖子数据,我到目前为止找到的最好的是完全钝的:

    $phpArray = json_decode(file_get_contents('php://input'));