Todos.Task = SC.Record.extend({
isDone: SC.Record.attr(Boolean),
description: SC.Record.attr(String),
color: SC.Record.attr(String),
order: SC.Record.attr(Number)
}) ;
Formatted a little weird from cut-paste
{
* rails_auth_token_name: "authenticity_token"
* self: "/tasks"
* rails_auth_token: "W8bgzqSwPCSQMa0FhFESa3ar/IYGI8lv6tBDURc0GkY="
*
-
content: [
o
-
{
+ isDone: false
+ guid: "f1fae4624a87ac3800000083"
+ order: 1
+ type: "Task"
+ description: "Brand New Task"
+
-
options: {
}
}
o
-
{
+ isDone: false
+ guid: "f1fae4624a87ae2d00000083"
+ order: 1
+ type: "Task"
+ description: "Another New Task"
+
-
options: {
}
}
o
-
{
+ isDone: false
+ guid: "ca78cab44a890dfc00000022"
+ color: "Red"
+ order: 1
+ fav: "Pink"
+ type: "Task"
+ description: "Isn't this just wonderful?"
+
-
options: [
# "option1"
# "option2"
# "option3"
]
}
o
-
{
+ guid: "5a2b404b4a896bd9000000a2"
+ type: "Task"
+ awesomeFactor: 5
+ description: "Why doesn't this update?"
+
-
summary: {
#
-
bees: [
* "four"
* "five"
* "six"
]
#
-
plants: [
* "one"
* "two"
* "three"
]
}
}
o
-
{
+ isDone: false
+ guid: "bf839a304a898030000000fa"
+ order: 1
+ type: "Task"
+ description: "A lovely new task"
}
o
-
{
+ isDone: false
+ guid: "bf839a304a89808d000000fa"
+ order: 1
+ type: "Task"
+ description: "This is a renamed task!"
}
o
-
{
+ isDone: false
+ guid: "bf839a304a8980b3000000fa"
+ order: 1
+ type: "Task"
+ description: "A new note for life!"
}
o
-
{
+ isDone: false
+ guid: "bf839a304a89810f000000fa"
+ order: 1
+ type: "Task"
+ description: "A new task is a wonderful thing right?"
}
o
-
{
+ isDone: false
+ guid: "bf839a304a89811d000000fa"
+ order: 1
+ type: "Task"
+ description: "Updating from Firefox!"
}
o
-
{
+ isDone: false
+ guid: "bf839a304a8981c0000000fa"
+ order: 1
+ type: "Task"
+ description: "A new task to update!"
}
]
}
var initialLoad = Todos.store.findAll(Todos.Task);
Todos.tasksController.set('content', initialLoad);
>>> results
[Object isDone=false guid=f1fae4624a87ac3800000083 order=1, Object isDone=false guid=f1fae4624a87ae2d00000083 order=1, Object isDone=false guid=ca78cab44a890dfc00000022, Object guid=5a2b404b4a896bd9000000a2 type=Task, Object isDone=false guid=bf839a304a898030000000fa order=1, Object isDone=false guid=bf839a304a89808d000000fa order=1, Object isDone=false guid=bf839a304a8980b3000000fa order=1, Object isDone=false guid=bf839a304a89810f000000fa order=1, Object isDone=false guid=bf839a304a89811d000000fa order=1, Object isDone=false guid=bf839a304a8981c0000000fa order=1]
>>> lenresults
10
>>> results.objectAt(3)
Object guid=5a2b404b4a896bd9000000a2 type=Task
>>> results.objectAt(3).summary.plants.objectAt(1)
"two"
SC.RailsDataSource = SC.DataSource.extend( {
requestCounter:0,
cancelStoreKeys:{},
fetch: function(store, fetchKey, params) {
var ret = [], url;
var action={};
if (params) {
var r = SC.Request.getUrl(store.resourcePath+"?"+params).set('isJSON', YES);
} else {
var r = SC.Request.getUrl(store.resourcePath).set('isJSON', YES);
}
r.notify(this, this.fetchDidComplete, {
store: store, fetchKey: fetchKey, storeKeyArray: ret
}
).header('content-type', 'application/json').send();
return ret;
},
fetchDidComplete: function(r, params) {
var hashes= [], storeKeys= [], store, fetchKey, ret, primaryKey,
response, results, lenresults, idx;
response = r.response();
if (response.rails_auth_token_name) {
SC.RAILS_AUTH_TOKEN_NAME = response.rails_auth_token_name;
SC.RAILS_AUTH_TOKEN = response.rails_auth_token;
}
if (response.kindOf ? response.kindOf(SC.Error) : false) {
this.requestDidError(r);
} else {
fetchKey = params.fetchKey;
storeKeys = params.store.loadRecords(fetchKey, response.content);
params.storeKeyArray.replace(0,0,storeKeys);
results = response.content;
lenresults = results.length;
}
debugger;
return YES;
},