我正在使用text! plug-in
require.js 来加载我的骨干项目的 javascript 模板。
这里我的 mini_signin.html
<script type="text/template" id="signinTemplate">
<div class="cartheadertitle">Sign In
//html of sign in element
</div>
</div>
看法 :
define(["jquery" ,
"underscore" ,
"backbone" ,
"text!templates/User/mini_signin.html"],
function($ , _ , Backbone , signinTemplate){
var SignInView = Backbone.View.extend({
el : $("#loginpanel"),
initialize:function(){
this.render();
console.log("start");
},
render:function(){
var signIn = _.template(signinTemplate, {})
this.$el.html(signIn);
console.log("stop");
}
});
return SignInView;
});
路由器:
define([
'jquery',
'backbone',
'router',
'views/CartList'
] , function($,Backbone,Router , SignInView){
var AppRouter = Backbone.Router.extend({
routes: {
"showCart": "cartList",
"*actions": "defaultRoute" // Backbone will try match the route above first
}
});
// Instantiate the router
var app_router = new AppRouter;
app_router.on('route:cartList', function (showCart) {
var signInView = new SignInView();
signInView.render();
alert("test");
});
Backbone.history.start();
});
控制台结果:
stop
start
stop
alert
在路由器中工作,但signInView
在 chrome 控制台中没有呈现任何错误。
对此问题的任何想法表示赞赏。谢谢。