Connection List page
List todos from the service layer (can-connect use)
The problem
Get all todos
from the service layer using the "connected" Todo
type.
What you need to know
The can-connect Presentation up to and including Important Interfaces.
Map.getList gets data using the connection’s getList and returns a promise that resolves to the list of instances:
Map.getList({}).then(function(list) { })
An async getter property behavior can be used to "set" a property to an initial value:
property: { get: function(lastSet, resolve) { SOME_ASYNC_METHOD( function callback(data) { resolve(data); }); } }
The solution
Click to see the solution
Update index.js to the following:
// index.js
import {Component} from "can";
import view from "./index.stache";
import Todo from "~/models/todo";
import "~/models/todos-fixture";
import test from "can-todomvc-test";
Component.extend({
tag: "todo-mvc",
view,
ViewModel: {
appName: {default: "TodoMVC"},
todosList: {
get: function(lastSet, resolve) {
Todo.getList({}).then(resolve);
}
}
}
});
const appVM = window.appVM = document.querySelector("todo-mvc").viewModel;
test(appVM);