[Falcor] Retrieving Multiple Values

In addition to being able to retrieve a path from a Falcor Model, you can also retrieve multiple Path Sets. Path Sets are paths that contain ranges or multiple string keys inside of indexers. In addition to being able to retrieve a Path Set, you can also retrieve as many paths as you like in a single method call.

 

You can fetch range of data:

model.get('people[0..1].titles[0].name')

 

Because what you fetch is not just a single a value, you need to use:

model.get()

Which return you a json string.

 

SO for example:

复制代码
<!-- 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: "ZT",
                        titles: [
                            {
                                id: 123,
                                name: "Senior Frontend developer",
                                rating: 10
                            }
                        ]
                    },
                    {
                        name: "WO",
                        titles: [
                            {
                                id: 321,
                                name: "Senior Software Engineer",
                                rating: 10
                            }
                        ]
                    }
                ]
            }
        });
        
        model.get('people[0..1].titles[0].name')
                .then(function (json){
                    console.log(JSON.stringify(json, null, 2));
                });
    </script>
</head>
<body>
</body>
</html>
复制代码

 

And what you will get:

复制代码
{
  "json": {
    "people": {
      "0": {
        "titles": {
          "0": {
            "name": "Senior Frontend developer"
          }
        }
      },
      "1": {
        "titles": {
          "0": {
            "name": "Senior Software Engineer"
          }
        }
      }
    }
  }
}
复制代码

 

 

You can pass multi enter points:

model.get('people[0..1].titles[0].name', 'people[0..1].titles[0].rating')

 So you will get :

复制代码
{
  "json": {
    "people": {
      "0": {
        "titles": {
          "0": {
            "name": "Senior Frontend developer",
            "rating": 10
          }
        }
      },
      "1": {
        "titles": {
          "0": {
            "name": "Senior Software Engineer",
            "rating": 8
          }
        }
      }
    }
  }
}
复制代码

 

 

Notice that:

        model.get('people[0..1].titles[0].name',
                  'people[0..1].titles[0].rating')

The entor points we pass in are quite simialr, actually we can group them:

model.get('people[0..1].titles[0]["name", "rating"]')

You will still get the same result.

posted @   Zhentiw  阅读(195)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2014-11-19 [ES6] 05. The leg keyword -- 3. Block Scope
2014-11-19 [ES6] 04. The let keyword -- 2 Fiald case
2014-11-19 [ES6] 03. The let keyword -- 1
点击右上角即可分享
微信分享提示