【发布时间】:2012-05-20 19:57:51
【问题描述】:
开始学习backbone.js 和require.js。
不确定如何为具有用户身份验证的 Web 应用构建文件。
看起来应该是这样的:
- 在应用初始化时,查询服务器以检查身份验证会话状态;
- Q#1:我应该在哪里编写这个“初始化后”会话代码 - 在 /js/app.js 中?
- Q#2:我应该为此使用 jQuery ajax,还是有更好的主干.js 方法(我在示例中看到了对 get()、fetch()、toJSON() 的引用)?
- 如果成功,将身份验证数据存储在模型中(user_id、username、auth_token)。
- Q#3:我如何/在哪里初始化这个模型,以便我可以访问整个模块的数据? IE。我将有一个视图来显示“isLoggedIn.html”的模板,该模板将显示“Hello %username%!Logout”。我想从此模型访问“用户名”字段。目前,我只看到如何通过在视图的 define[] 中引用它来创建新模型,所以我不知道如何访问在 init 期间创建的模型。
- 将使用 jQuery $.cookies 来保存和获取此身份验证数据,因此如果用户离开页面并返回,我可以查询服务器以检查会话,而不是要求用户再次登录。
- Q#4:如何将 jquery.cookies.js 插件包含到这个 requirejs 应用程序中,以便以后可以像往常一样使用 $.cookies?我应该将此插件添加到define[] 列表中吗?我是否必须将其添加到 /js/jquery/loader.js 文件中?
感谢您的帮助。
编辑:我使用来自modular-backbone 示例的文件来创建我的网络应用程序。所以当我说 /js/app.js 和 js/router.js 时,我指的就是这些文件。
【问题讨论】:
-
对于 Q3:您不能创建用户模型,然后在构建这些视图时将其传递给相关视图吗?
-
另外,你的意思是你只能在定义中引用它时创建一个新模型?发布该模型代码的 sn-p?
-
我正在使用模块化主干的结构。所以在我的 app.js 中,我正在创建
var credentials = new authModel()。据我了解,然后我必须在登录视图中访问这个credentialsvar。但凭据不是全局变量,因此在登录视图中凭据为空 - 看不到任何数据。
标签: backbone.js requirejs