Skip to content

Instantly share code, notes, and snippets.

@zerkalica
Last active April 22, 2016 22:40
Show Gist options
  • Save zerkalica/14eaf67c8a64d52814da04ee16e8abc5 to your computer and use it in GitHub Desktop.
Save zerkalica/14eaf67c8a64d52814da04ee16e8abc5 to your computer and use it in GitHub Desktop.
loaders-test
[
// loads Model1 and Model2 by one request
loader(Loader12, deps),
// loads Model1
loader(Loader1, deps),
// Loads Model2
loader(Loader2, deps),
// Keep Model1 state and pending/error/success status, attach default loader
value(Model1, new Model1(), Loader1),
// Keep Model2 state and pending/error/success status, attach default loader
value(Model2, new Model2(), Loader2),
// load Model1L, model2l via default Loader12
component(Component1, {
providers: [
// create new Model1, copy Model1 state from parent container, redefine new loader
value(Model1, fromParent, Loader12),
value(Model2, fromParent, Loader12)
],
deps: [Model1, Model2]
}),
// Redefine default loader for Model1L, Model2L to Loader1 and Loader2
component(Component2, {
deps: [Model1, Model2]
})
]
[
// loads Model1 and Model2 by one request
loader(Loader12, deps, Model1, Model2),
// loads Model1
loader(Loader1, deps, Model1),
// Loads Model2
loader(Loader2, deps, Model2),
// Keep Model1 state and pending/error/success status
value(Model1, new Model1()),
// Keep Model2 state and pending/error/success status
value(Model2, new Model2()),
// Binds together Model1 and Loader12
model(Model1L, Model1, Loader12),
// Binds together Model2 and Loader12
model(Model2L, Model2, Loader12),
// load Model1L, model2l via default Loader12
component(Component1, {
deps: [Model1L, Model2L]
}),
// Redefine default loader for Model1L, Model2L to Loader1 and Loader2
component(Component2, {
providers: [
model(Model1L, Model1, Loader1),
model(Model2L, Model2, Loader2)
],
deps: [Model1L, Model2L]
}),
// Loads only Model1
component(Component3, {
providers: [
model(Model1L, Model1, Loader1)
],
deps: [Model1L]
})
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment