CanJS jQuery Template
Includes jQuery, CanJS and all of its plugins. Use it as a starting point when you want to demo something.
HTML
<script src="http://canjs.us/release/latest/can.jquery.js"></script>
<script src="http://canjs.us/release/latest/can.construct.proxy.js"></script>
<script src="http://canjs.us/release/latest/can.control.plugin.js"></script>
<script src="http://canjs.us/release/latest/can.view.modifiers.js"></script>
<script src="http://canjs.us/release/latest/can.construct.super.js"></script>
<script src="http://canjs.us/release/latest/can.object.js"></script>
<script src="http://canjs.us/release/latest/can.ejs.js"></script>
<script src="http://canjs.us/release/latest/can.map.attributes.js"></script>
<script src="http://canjs.us/release/latest/can.map.backup.js"></script>
<script src="http://canjs.us/release/latest/can.map.delegate.js"></script>
<script src="http://canjs.us/release/latest/can.map.setter.js"></script>
<script src="http://canjs.us/release/latest/can.map.validations.js"></script>
<script src="http://canjs.com/release/latest/can.fixture.js"></script>
<script src="http://marak.com/faker.js/js/faker.js"></script>
JavaScript
var makeIssue = (function() {
var id = 1;
return function () {
return {
id: id++,
title: faker.lorem.sentence(),
description: faker.lorem.paragraph()
}}})()
function makeList(constructor) {
var list = [];
for (var i=0; i<10; i++) list.push(constructor());
return list;
}
can.fixture({
'GET Issues': function() {
return makeList(makeIssue);
},
'GET Issue/{id}': function() {
return makeIssue()
},
'GET Issue/{id}/Related': function() {
return makeList(makeIssue);
},
});
var Issue = can.Model.extend({
findAll: 'GET Issues',
findOne: 'GET Issues/{id}',
findRelated: function(params) {
var deferred = new can.Deferred();
can.ajax({
type: 'GET',
url: 'Issue/'+params.id+'/Related'
}).then(function(response) {
// success
deferred.resolve(Issue.models(response || []));
}, function(xhr, textStatus, err) {
// failure
deferred.reject(err);
});
return deferred;
}
},{});
Issue.findRelated({id: 3}).then(function(issues) {
console.log(issues);
});