码迷,mamicode.com
首页 > 其他好文 > 详细

[Falcor] Indroduce to Model

时间:2015-11-09 07:04:17      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

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);
                });

 

[Falcor] Indroduce to Model

标签:

原文地址:http://www.cnblogs.com/Answer1215/p/4948883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!