zoukankan      html  css  js  c++  java
  • 7.10 Models -- Handling Metadata(处理元数据)

    1. 随着从store中返回的records,你可能需要处理一些元数据。Metadata是伴随着特定model或者type的一种数据,而不是record。

    2. 分页是使用元数据的一个常见的例子。想象一个博客有比你一次可以显示的更多的posts。你可能会这样查询:

    let result = this.store.query("post", {
      limit: 10,
      offset: 0
    });

    3. 为了得到不同页面的数据,你可以简单的改变offset为10。到此为止,一切尚好。但是你如何知道你有多少页的数据?你的服务器需要返回records的总数作为元数据的一部分。

    4. 每一个序列化器将期望返回不同的元数据。例如,Ember Data的JSON反序列化器查找一个meta键:

    {
      "post": {
        "id": 1,
        "title": "Progressive Enhancement is Dead",
        "comments": ["1", "2"],
        "links": {
          "user": "/people/tomdale"
        },
        // ...
      },
    
      "meta": {
        "total": 100
      }
    }

    5. 无论使用什么序列化器,这个元数据是从响应中提取出来的。你可以通过使用.get('meta')来读取它。

    6. 这可以在调用store.query()的结果中来完成:

    store.query('post').then((result) => {
      let meta = result.get('meta');
    })

    7. 在belongsTo关系中:

    let post = store.peekRecord('post', 1);
    
    post.get('author').then((author) => {
      let meta = author.get('meta');
    });

    或者在hasMany关系中:

    let post = store.peekRecord('post', 1);
    
    post.get('comments').then((comments) => {
      let meta = comments.get('meta');
    });

    8. 在读取它之后,meta.total可以被用于计算有多少页。

  • 相关阅读:
    mysql高级之编程优化
    高性能产品必由之路
    linux下安装xhprof
    linux下安装apc
    linux下安装vld
    python装饰器通俗易懂的解释!
    python函数基础 与文件操作
    python基础入门一(语法基础)
    iOS Keychain,SSKeychain,使用 理解 原理
    起头
  • 原文地址:https://www.cnblogs.com/sunshineground/p/5165984.html
Copyright © 2011-2022 走看看