Backbone,Underscore,Require.js路由和模板问题(Uncaught TypeError:无法读取属性'替换未定义的)

时间:2014-08-13 19:18:49

标签: javascript templates backbone.js underscore.js require

需要一个非常奇怪的情况的帮助我在BB,_和要求。我使用Grunt的assemble.io来预编译我的html,所以在任何特定时刻我都将我的所有模板都放在同一个文件中。我会更清楚,我有这是我的index.html:

<div class="container"> 
    <div class="main-container">
       <script type="text/template" id="login-template"> 
          bla bla bla
       </script>
       <script type="text/template" id="register-template">
         tralalala
       </script>
    </div>
</div>

这是我的路由器:

define(['backbone', 'underscore', '../views/homeView', '../views/registerUserView' ],            function(Backbone, _, HomeView, RegisterUserView) {

var homeView = new HomeView(),
    registerUserView = new RegisterUserView();

var Router = Backbone.Router.extend({
    routes: {
      '' : 'home',
      'register/:id': 'registerUser'
    }
 });

var router = new Router();
router.on('route:home', function(){
   homeView.render();
});
router.on('route:registerUser', function(id){
  registerUserView.render(id);
});

Backbone.history.start();

return Router;
});

这是我的注册视图:

define(['backbone', 'underscore'], function(Backbone, _) {

  var RegisterUserView = Backbone.View.extend({

  el : '.main-container',

  render : function (id) {
      var _this = this,
          _template = _.template($('#reg-user-main-template').html(), {} );
         //todo: create the switch 
      _this.$el.html(_template);
    },

    initialize: function() {
   }
 });

 return RegisterUserView;

});

我有一个带有href =&#34; #register / 1&#34;的按钮,当我点击时会给我:

未捕获的TypeError:无法读取属性&#39;替换&#39;未定义的localhost / js / libs / underscore-amd / underscore.js:1180

所以我知道会发生这种情况,因为_template = _.template($(&#39; #reg-user-main-template&#39;)。html(),{});得到了一个未定义的&#34; $(&#39; #reg-user-main-template&#39;),但我不知道为什么或如何,因为我的所有模板都在同一个html文件中。任何帮助将不胜感激,我相信如果你帮忙,Karma或其他什么会给你很多啤酒:)

0 个答案:

没有答案