// ViewModel
var viewModel = {
items: ko.observableArray(),
errorMessage: ko.observable(""),
reset: reset
};
// Datacontext
var serviceName = "http://sampleservice.breezejs.com/api/todos";
var manager = new breeze.EntityManager(serviceName);
fiddleHelpers.isCorsCapable();
getAllTodos();
ko.applyBindings(viewModel, document.getElementById('view'));
/*** supporting functions ***/
function getAllTodos() {
var query = breeze.EntityQuery.from("Todos");
log("Getting Todos");
return manager.executeQuery(query)
.then(succeeded).fail(failed);
}
function succeeded(data) {
var count = data.results.length;
log("Retrieved " + count);
if (!count) {
log("No Todos"); return;
}
viewModel.items(data.results);
}
function failed(error) {viewModel.errorMessage(error);}
function reset() {
viewModel.items([]);
manager.clear();
$.post(serviceName + '/reset', afterReset);
function afterReset() {
log("Database reset");
getAllTodos();
}
}
function log(text) {
console.log(text);
document.getElementById('log').innerHTML += '<li>' + text + '</li>';
}
<div id="view">
<h2>Todos </h2>
<ul data-bind="foreach: items">
<li>
<input type="checkbox" data-bind="checked: IsDone" />
<label data-bind="text: Description, css: { done: IsDone, archived: IsArchived }"></label>
</li>
</ul>
<div data-bind="visible: errorMessage().length">
<label class="error" data-bind="text: errorMessage"></label>
</div>
<h2>Log:</h2>
<ol id="log" type="1"></ol>
<button data-bind="click: reset">Reset Db</button>
<p>
<a href="http://todo.breezejs.com" target="_blank">Todos Sample</a>
<a href="http://www.breezejs.com" target="_blank">Breeze Home</a>
</p>
</div>