我对 Javascript 和backbone.js 很陌生。在 AS3 中使用 RobotLegs 开发了一个应用程序,需要将其移植到 Javascipt。对于客户端 MVC,我开始研究 Backbone.js。这些概念看起来很简单,但我有点不确定以“正确”的方式做事。还有一些我卡住的地方...
所以基本上,我有这个 Web 服务(非 RESTful),我需要从中获取一个带有应用程序配置的 JSON 对象。理想情况下,我认为进行此调用的最佳方法是使用 Backbone 模型,但我不确定如何覆盖 URL 和 Parse 方法以使其与非 Restful 服务一起使用。所以现在我从 App.js 中的模型外部对其进行 Ajax 调用(代码共享如下)。
从 JSON 调用中获取数据后,我想将其存储在 ConfigModel(SingleTon 模型)对象中,我可以从模块中查询该对象以检索最终填充某些视图的值对象。我这里有 2 个问题。
1) 我不知道如何使用 Backbone.js 实现单例模型 2) 我不知道如何将我的 ConfigModel 进一步划分为更小的模型/集合,以及我是否需要将它们也设为单例或者只是将它们传递给视图构造函数。
我正在使用 Require.js 来定义([])特定视图/模型等的依赖模块。现在我不确定加载模块的范围。如果我需要使它们成为单例,那么我应该只在某个地方加载它们一次,然后将依赖项注入到其他类/模块对象中。如何使用 Backbone.js 执行此操作???
最后,我想在整个框架中使用自定义事件。我可以全局调度并从模型/视图等中收听的框架事件。
正如你所看到的,我对范围/单例以及所有这些如何与 Backbone.js 和 Require 相适应感到非常困惑。
这是我现在的应用程序结构...
1) 我的 index.html 文件使用 Require.js 加载“Main.js”
2) 在 Main.js 中,我加载 App.js 并在其上调用 init。Init 调用 getConfig() 函数,该函数对 Web 服务进行 AJAX 调用,并获取和解析 JSON 文本文件。我想将其存储在单例 ConfigModel 中。但是,我现在对此发表了评论,因为我开始尝试使用我的 ConfigModel 本身进行 web 服务调用的方法......这不起作用。
3) 然后我有一个带有默认 URL 映射的路由器。在成功接收来自 Web 服务的 JSON 后,我初始化了路由器。我不确定这是否正确,或者我应该从路由器进行 Ajax 调用?
这是代码: http: //pastebin.com/HHRF88Tq
我知道我到处都是,但如果有人能引导我朝着正确的方向前进,我会非常感激......
谢谢一堆。
萨米尔