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>
JavaScript
var makeIssue = (function() {
var id = 1;
return function () {
return {
id: id++,
title: "Isssue "+id,
description: "Description of Issue "+id
}}})()
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(issue) {
return can.ajax({
type: 'GET',
url: 'Issue/'+issue.id+'/Related'
}).then(function(response) {
return this.models(this.parseModels(response));
}.bind(this));
}
},{
findRelated: function() {
return this.constructor.findRelated(this);
}
});
Issue.findRelated({id: 3}).then(function(issues) {
console.log(issues);
});
new Issue({id: 3}).findRelated().then(function(issues) {
console.log(issues);
});