X Tutup
Skip to content

Commit 2df072e

Browse files
committed
twitter using resources
1 parent 9e1f085 commit 2df072e

File tree

6 files changed

+21
-20
lines changed

6 files changed

+21
-20
lines changed

.idea/.gitignore

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Rakefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ task :compile do
4646
src/JSON.js \
4747
src/Model.js \
4848
src/Parser.js \
49+
src/Resource.js \
4950
src/Scope.js \
5051
src/Server.js \
5152
src/Users.js \

example/tweeter/tweeter_addressbook.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<link rel="stylesheet" type="text/css" href="../../css/angular.css">
66
<script type="text/javascript" src="../../lib/underscore/underscore.js"></script>
77
<script type="text/javascript" src="../../lib/jquery/jquery-1.4.js"></script>
8-
<script type="text/javascript" src="../../angular.js"></script>
8+
<script type="text/javascript" src="../../src/angular-bootstrap.js"></script>
99
<script type="text/javascript" src="tweeterclient.js"></script>
1010
</head>
1111
<body ng-class="status" ng-init="mute={}" ng-watch="$anchor.user: tweets = fetchTweets($anchor.user)">

example/tweeter/tweeterclient.js

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
function noop(){}
22
$(document).ready(function(){
3+
function xhr(method, url, data, callback){
4+
jQuery.getJSON(url, function(){
5+
callback.apply(this, arguments);
6+
scope.updateView();
7+
})
8+
}
9+
10+
var resourceFactory = new ResourceFactory({method: xhr});
11+
12+
var Tweeter = resourceFactory.route("http://twitter.com/statuses/:service:username.json", {}, {
13+
home: {method:'GET', params: {service:'home_timeline'}, isArray:true },
14+
user: {method:'GET', params: {service:'user_timeline/'}, isArray:true }
15+
});
16+
17+
318
var scope = window.scope = angular.compile(document, {
419
location:angular.startUrlWatcher()
520
});
6-
scope.getJSON = function(url, callback) {
7-
var list = [];
8-
var self = this;
9-
self.set('status', 'fetching');
10-
$.getJSON(url, function(response, code){
11-
_(response).forEach(function(v,k){
12-
list[k] = v;
13-
});
14-
(callback||noop)(response);
15-
self.set('status', '');
16-
self.updateView();
17-
});
18-
return list;
19-
};
2021

2122
function fetchTweets(username){
22-
return scope.getJSON(
23-
username ?
24-
"http://twitter.com/statuses/user_timeline/"+username+".json" :
25-
"http://twitter.com/statuses/home_timeline.json");
23+
return username ? Tweeter.user({username: username}) : Tweeter.home();
2624
}
2725

2826
scope.set('fetchTweets', fetchTweets);

src/Resource.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ ResourceFactory.prototype = {
4949
actions = $.extend({}, ResourceFactory.DEFAULT_ACTIONS, actions);
5050
function extractParams(data){
5151
var ids = {};
52-
foreach(paramDefaults, function(value, key){
52+
foreach(paramDefaults || {}, function(value, key){
5353
ids[key] = value.charAt && value.charAt(0) == '@' ? Scope.getter(data, value.substr(1)) : value;
5454
});
5555
return ids;

src/angular-bootstrap.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
addScript("/JSON.js");
4747
addScript("/Model.js");
4848
addScript("/Parser.js");
49+
addScript("/Resource.js");
4950
addScript("/Scope.js");
5051
addScript("/Server.js");
5152
addScript("/Users.js");

0 commit comments

Comments
 (0)
X Tutup