2013-09-29 18 views
1

我正在使用require.js的text! plug-in加载我的骨干项目的JavaScript模板。查看未使用require.js文本呈现!插件

这里我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没有没有铬控制台的任何错误渲染。

有关这个问题的任何想法,赞赏。谢谢。

+0

关闭串入警戒第一,在初始化创建一些的console.log和渲染视图中,了解您的应用程序停止 –

+0

哦,对了。这是我的错字。 – titi

+0

你解决了这个问题吗? –

回答

2

删除您的html文件内的脚本,只留下html代码。

通常为每个模板创建一个html来更好地组织好代码和文件。

<div class="cartheadertitle">Sign In 
     //html of sign in element 
    </div> 
+0

你救了我的一天! – titi

+0

很高兴为您服务!欢迎您@titi –

+0

拯救了我的一天! –