0

在我正在构建的Backbone.Marionetteuser应用程序中,我们有一个身份验证,它返回一个对象,然后我们将其存储在其中App.User(因此它不是真正的全局对象)。

我遇到的问题是我不想调用 API 端点来访问返回user对象的各种属性。我现在正在处理的具体用例是返回的user对象包含有关允许用户访问应用程序中哪些模块的数据(不用担心安全性,我们已经澄清用户可以欺骗 var在他们的控制台中访问 UI,服务层将阻止他们在这样的区域中的操作有意义)。

我的目标是避免每次我需要访问users.appAccess(列出我可以访问的模块的假设数组)以便将其实例化为模型时我必须通过在集合的定义如下:

    Entities.Access = Backbone.Collection.extend({
        url: 'http://example.com/users/:id/access/',
        }
    });

从上面的代码中删除该url属性会引发错误,我可以向它传递一个返回空的函数,但这并不适合

   var access = new Entities.Access() 
   access.fetch(); 

尝试将获取的集合传递给 Marionette CollectionView 时。我是否应该简单地避免使用该fetch()方法并将其保留为典型的(尽管是 hack-ish)Backbone 集合定义?

4

1 回答 1

1

Backbone 允许您按现有方式(使用空构造函数)或使用数据集合填充 Backbone 集合。听起来您已经将数据存储在 User 对象中,并且您希望将此信息推送到Entities.Access集合中。

var access = new Entities.Access(user.access);

我和你在一起,这感觉有点像黑客,但由于 Backbone 不支持这个,所以你无能为力。看看Backbone-Relationalsupermodel.js。这些项目提供了比默认实现更好的模型嵌套形式。

于 2013-08-05T04:45:20.817 回答