2013-09-29 17 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

拯救了我的一天! –