我有一个站点在后端使用 Node.js 和 Jade,在客户端我使用 Handelbars.js 和 Embers.js。我正在将一个属性传递到我的 flickr apiKey 的 .jade 模板中,这样我就可以将所有这些密钥保存在一个服务器端 json 文件中。然后我想在 html 中设置我的 Embers flickrPhotoSearchRequestModel 的属性,以便它可以使用它来访问 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 的模板中不起作用。