バックエンドで Jade を使用して Node.js を使用しているサイトがあり、クライアント側では、Embers.js で Handelbars.js を使用しています。flickr apiKey の .jade テンプレートにプロパティを渡しているので、これらすべてのキーを 1 つのサーバー側の json ファイルに保持できます。次に、Embers flickrPhotoSearchRequestModel のプロパティを html に設定して、それを使用して API にアクセスできるようにします。
私はやろうとしています
script(type='text/x-handlebars')
{{Piccee.flickrPhotoSearchRequestModel.set('api_key', 1)}}
しかし、それはうまくいかないようです。
FlickrController.js
Piccee.FlickrPhotoSearchRequestModel = Em.Object.extend({
api_key: "",
searchTerm: "",
page: 1,
url: function() {
var url = "http://api.flickr.com/services/rest/?method=flickr.photos.search";
url += '&api_key=' + this.get("api_key");
url += '&tags=' + this.get("searchTerm");
url += '&text=' + this.get("searchTerm");
url += '&page=' + this.get('page');
url += '&sort=interestingness-desc&extras=url_sq%2C+url_t%2C+url_s%2C+url_q%2C+url_m%2C+url_n%2C+url_z%2C+url_c%2C+url_l%2C+url_o&format=json&nojsoncallback=1';
return url;
}.property('api_key', 'searchTerm', 'page'),
});
Piccee.flickrPhotoSearchRequestModel = Piccee.FlickrPhotoSearchRequestModel.create({
api_key: "123",
searchTerm: "",
page: 1
});
.js では、上記の set メソッドは問題なく機能しますが、Handelebar のテンプレートでは機能しません。