我正在制作我的第一个骨干网络应用程序,我在修复模板方面遇到了一些麻烦。现在我的一个模板给了我我想要的东西,但第二个没有给我看任何东西。
我想要显示的数据是一个菜单栏,其中包含youtube提供服务的国家/地区。数据来自youtube v3 i18nRegions api。
触发模板的JS文件:
site.views.ContinentLinks = Backbone.View.extend(
{
events: {'click a': 'clickHandler'},
templatemenuitems: _.template(site.settings.templates.menuitems),
templateError: _.template(site.settings.templates.error),
initialize: function (prop) {
console.log("starting continentlinks.js");
console.log(prop);
this.router = prop.router;
this.loadMenuItems();
console.log("started loading");
site.events.trigger('newMenu');
},
clickHandler: function (e) {
e.preventDefault();
var curTarget = $(e.currentTarget);
var curURL = 'videos/' + curTarget.data('country');
console.log(curURL);
this.router.navigate(curURL, {trigger: true, replace: true});
}
,
loadMenuItems: function () {
console.log("started loadMenuItems");
console.log(this.collection.url);
this.collection.fetch({
success: _.bind(this.loadMenuItemsSuccessHandler, this),
error: _.bind(this.loadMenuItemsErrorHandler, this)
});
},
/**
*
* @param collection
* @param response
*/
loadMenuItemsSuccessHandler: function (collection, response) {
console.log("SUCCESS");
console.dir();
this.$el.html(this.templatemenuitems({menuitems: response}));
console.log("succesfull loaded menu");
},
/**
* if the get call fails
* @param collection
* @param response
*/
loadMenuItemsErrorHandler: function (collection, response) {
console.log("ERROR");
var data = JSON.parse(response.responseText);
this.$el.html(this.templateError({message: data.error}));
}
});
和自己的模板:
<% _.each(menuitems.items, function(Menuitem, index, list){%>
<a href="#" data-country="<% Menuitem.gl %>"><% Menuitem.name%></a>
<%}) %>
我在这里有一个指向我的webapp的当前版本的链接:http://student.cmi.hro.nl/0876538/Jaar2/FED/Weindopdracht/
github上的完整代码: https://github.com/FlashDog123/FED01-Eindopdracht