当前位置: 首页 > 面试题库 >

骨架.js-与请求一起获得额外的数据

呼延德华
2023-03-14
问题内容

我有一个收藏,其中包含一些用户。需要的一些信息是总数,页数等。如何将这些信息传递回客户端?还是它们必须来自一个单独的视图,在这种情况下,我将需要多个ajax调用?我想拥有该集合,fetch()并且还接收一些“元数据”。什么是处理此问题的好方法?


问题答案:

通常,您需要在集合类的parse方法中进行处理。它的职责是获取响应并返回一系列模型属性。但是,如果您不希望使用parse方法承担额外的责任,则可以做更多的事情。

UserList = Backbone.Collection.extend({

    model: User,

    url: '/users',

    parse: function(data) {
        if (!data) {
            this.registered_users = 0;
            return [];
        }
        this.registered_users = data.registered_users;
        var users = _(data.users).map(
            function(user_data) {
                var user = {};
                user['name'] = user_data.name;
                return user;
            }
        );
        return users;
    }
});

因此,在上述琐碎的示例中,假定服务器返回一个响应,其中包含注册用户的数量和用户属性的数组。您将解析并返回用户属性,然后选择已注册的用户数并将其设置为模型上的变量。
解析方法将作为获取的一部分被调用。因此,无需修改获取,只需使用您拥有的内置钩子方法即可。

纯粹主义者会说,您给parse方法赋予了第二种责任,这可能会使某些人感到惊讶(例如,返回某些东西并修改模型状态)。但是,我认为这还可以。



 类似资料:
  • 仅当建立的是轮询连接时才起作用(默认为polling轮询),当使用websocket建立传输时,自定义的请求头将不会被添加,因为WebSockets握手信号不信任自定义的请求头(详细信息可以阅读 WebSocket protocol RFC) const socket = io({ transportOptions: { polling: { extraHeaders: {

  • 有没有一种方法可以只从一个类中接收意图附加内容?例如,我有两个使用意图打开第三个活动的活动。现在我只希望前两个中的一个通过附加内容,这样我就可以在第三个活动中接收它。 我已经实现了所有功能,但它会崩溃,因为当我打开第二个没有添加额外功能的第三个活动时,它会崩溃我的应用程序。 为了更清楚地描述它: 活动1:通过意向附加 活动1和2都使用意图来启动活动3,但我只需要活动1中的额外内容。

  • 我有一个非常大的用户,有许多字段,如下所示: 我定义了如下验证方法: 当我生成swagger时,它会在请求模型中显示Userdto的所有属性,但我只想显示用户名/密码,并想隐藏其他属性。但是在createUser方法的同一点上,我想显示UserDto的所有属性。 我试图找到解决方案,但没有得到任何,这可能吗?请建议我一些方法来实现这一点。 提前谢谢。

  • 使用一个bones数组来创建一个可以由SkinnedMesh使用的骨架。 代码示例 // Create a simple "arm" const bones = []; const shoulder = new THREE.Bone(); const elbow = new THREE.Bone(); const hand = new THREE.Bone(); shoulder.add( elb

  • 在下载附件时,我得到了一个额外的类型的文件。我正在使用这是我的下载附件代码 这里是一个将作为参数和其他一些参数的类。是定义为

  • 问题内容: 我已经使用Selenium Webdriver用C#编写了几行代码。当我的应用程序转移到Electron框架时,一切都发生了变化,说实话,我现在不知道如何应对。 你能告诉我吗?我应该采取什么步骤来简单地开始…我想继续当前项目(Selenium,C#)中的工作,但是我不确定是否有可能,或者我应该完全使用其他语言从头开始,并且框架? 我已经阅读了有关Spectron的文章,并检查了诸如st