zoukankan      html  css  js  c++  java
  • [Falcor] Indroduce to Model

    How to work with JSON data indirectly through a Falcor Model. The Falcor Model allows you to work with data using the same familiar JavaScript path syntax. However the Model uses a push API, sending the data to a callback rather than returning it immediately. Using a push API means that you can move your data anywhere in the network later on, without changing the data retrieval code in your client.

    Below the code, show the data stay in memory, and we get the data by javascript path:

    <!-- index.html -->
    <html>
    <head>
        <!-- Do _not_  rely on this URL in production. Use only during development.  -->
        <script src="//netflix.github.io/falcor/build/falcor.browser.js"></script>
        <script>
            var model = {
              people: [
                  {
                      name: "Zhentian",
                      titles: [
                          {
                              id: 123,
                              name: "developer",
                              rating: 10
                          }
                      ]
                  },
                  {
                      name: "Otto",
                      titles: [
                          {
                              id: 321,
                              name: "developer",
                              rating: 10
                          }
                      ]
                  }
              ]  
            };
            
            console.log(model.people[0].titles[0].name);
        </script>
    </head>
    <body>
    </body>
    </html>

    You will see the "developer" in the console.

    Using farcol.Model to the data async, the data will be pushed into the console:

    <!-- index.html -->
    <html>
    <head>
        <!-- Do _not_  rely on this URL in production. Use only during development.  -->
        <script src="//netflix.github.io/falcor/build/falcor.browser.js"></script>
        <script>
            var model = new falcor.Model({
                cache: {
                    people: [
                        {
                            name: "Zhentian",
                            titles: [
                                {
                                    id: 123,
                                    name: "developer",
                                    rating: 10
                                }
                            ]
                        },
                        {
                            name: "Otto",
                            titles: [
                                {
                                    id: 321,
                                    name: "developer",
                                    rating: 10
                                }
                            ]
                        }
                    ]
                }
            });
            
            model.getValue('people[0].titles[0].name')
                    .then(function (value){
                        console.log("Falcor: ", value);
                    });
        </script>
    </head>
    <body>
    </body>
    </html>

    We still use the javascript path the repersent the data:

    'people[0].titles[0].name'

    getValue return a promise, so we use .then to get the value:

            model.getValue('people[0].titles[0].name')
                    .then(function (value){
                        console.log("Falcor: ", value);
                    });
  • 相关阅读:
    Android属性动画ObjectAnimator的使用1
    通过Android反编译技术研究国内陌生人社交即时通讯的技术方案
    滴滴出行开源项目doraemonkit食用指南
    Android开发利器之pidcat
    Spinner在Dialog中的使用效果
    python抓取知识星球精选帖,制作为pdf文件
    [设计模式]观察者模式
    C语言实现进度条
    [设计模式]策略模式
    线程链表与线程切换
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4948883.html
Copyright © 2011-2022 走看看