我正在使用Backbonejs框架。在这个框架下,我创建了一个app.js,它使用Backbonejs,requirejs,underscore和text.js 我想将一个html页面加载到div上。控制台显示已加载html页面,但我无法在屏幕上看到该特定页面。
以下是app.js
define(function (require) {
// "use strict";
var $ = require('jquery'),
underscore = require('assets/js/underscore'),
Backbone = require('assets/js/backbone'),
tpl = require('text!Views/home.html'),
template = _.template(tpl);
return Backbone.View.extend({
render: function () {
el: '#banner',
this.$el.html(template());
return this;
}
});
});
我想将home.html加载到主屏幕(index.html)。我在index.html中调用了这个app.js.控制台显示以下XHR已完成加载:GET" file:/// D:/Project1/Views/home.html" 但我的index.html页面并未显示此home.html
答案 0 :(得分:1)
代码存在许多问题。
检查这个小提琴:http://jsfiddle.net/rahulsv/c4dveax9/
var tpl = "<div>hello world</div>";
var template = _.template(tpl);
(function(){
var View = Backbone.View.extend({
el: '#banner',
initialize: function(){
this.render();
},
render: function () {
this.$el.html(template());
}
});
var v = new View();
})();
希望它有所帮助。
<强>更新强>
要使用requireJs从文件访问模板(因为您正在使用它),您可以按如下方式进行:
模板文件:
<!-- pod.html -->
<h2><%= title %></h2>
<p><%= body %></p>
从JS访问模板:
// view.js
define(["text!templates/pod.html"], function(pod) {
var View = Backbone.View.extend({
template: _.template(pod)
});
});
点击此链接以获取参考:http://kilon.org/blog/2012/11/3-tips-for-writing-better-backbone-views/