0

我正在使用 Backbone 和 Marionette。

我有一个定义的用户模型:

Users.User = Backbone.Model.extend({
    defaults: {
        short_name: '',
        full_name: ''
    }
});

我想在我的主干代码中轻松访问当前登录的用户数据。

我不确定是否:

  1. 有一个从用户模型继承的单独模型(也许是 Users.AuthUser??)

或者

  1. 在 Users.User 模型中添加一个单独的函数,而不是返回一个 User 模型的实例,但包含登录的用户数据。

我也不确定如何检索当前登录的用户数据。

http://example.com/me我是否通过像JSON这样的端点 url 公开数据?

或者以某种方式主干可以访问会话数据?

4

2 回答 2

1

一般的经验法则是,如果subclass具有与父级无关的属性/方法,那么它应该被子类化。在我看来,这就是一个例子。

Backbone(只是一个 MVC JS 实现)无法访问您的会话数据。所以这需要通过 REST 请求提供。

于 2013-03-04T08:45:26.490 回答
0

模型之间不共享数据。除非您需要在用户模型中为经过身份验证的用户提供特定功能,否则只需使用更多数据填充身份验证使用就足够了。

我这样做的方法是在fetch()方法中,确保我的模型与返回当前登录用户的 JSON 的端点通信。

为了为经过urlRoot身份验证的用户与其他用户定义不同,您需要有两个单独的模型。

PS,实际上我使用 socket.io 作为同步协议而不是 REST API,所以我只是为当前用户和联系人使用不同的事件名称进行同步。

于 2013-03-04T20:01:36.537 回答