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.