Modelは、以下の様な感じです。
var YoutubeModel = Backbone.Model.extend({ urlRoot: '', defaults: { 'title': '', 'url': '' }, url: function() { if (this.id) { return 'https://gdata.youtube.com/feeds/api/videos/' + this.id + '?v=2&alt=jsonc'; } else { return ''; } }, parse: function(res) { return { title: res.data.title, url: 'http://www.youtube.com/watch?v=' + res.data.id } }, save: function() { console.log('save() is not supported.'); }, destroy: function() { console.log('destroy() is not supported.'); } });fetchしてみます。
var youtubeModel = new YoutubeModel({id: 'MDBLhdSy5t4'}); youtubeModel.fetch({success: function(model, res) { console.log('title: ' + model.get('title')); console.log('url: ' + model.get('url')); }});コンソールにタイトルとURLが表示されたら成功です。もちろん、YouTube以外の外部サービスでも(jsonさえ返してくれれば)使えるはずです。そして、外部サービスと通信している事実をModelの中に局所的に閉じ込められるので、後が楽そうですね。
ViewとCollectionと組み合わせればインクリメンタルサーチとかもスッキリ実装できそうだなー。
No comments:
Post a Comment