2014-11-14 124 views
0

我是新來的骨幹js和Im無法獲得js文件加載視圖。骨幹不加載

即時通訊使用Symfony2和在別人身上工作elses代碼。

我的HTML視圖和骨幹文件非常簡單。

筆者認爲:

<div id="accountManager" class="user-edit-form"> 
    <div class="user-edit-form"> 
     <div class="button-set"> 
     {{ form_widget(form.save, { 'attr': {'class': 'button-primary button-save'} }) }} 
     </div> 
    </div> 
</div> 

在我的骨幹觀點:

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'spinner' 
], function($, _, Backbone, Spinner) { 

    var accountView = Backbone.View.extend({ 

     el: '#accountManager .user-edit-form', 

     events: { 
      'click .button-save': 'updateUser' 
     }, 

     initialize: function() { 
      console.log("I AM LOADED"); 
      this.$formHolder = this.$('.user-edit-form'); 
      this.$loadingHolder = this.$('.user-edit-form .loading-mask'); 
     }, 

     render: function() { 
      return this; 
     }, 

     updateUser: function (event) { 
      event.preventDefault(); 
      console.log('clicked'); 
      alert("clicked"); 
      return false; 
     } 

    }); 

    return accountView; 

}); 

Assetic的所有js文件合併成一個,當我運行相關的命令,所以這段代碼應該一起出現任何HTML加載。我是否需要告訴symfony在某處加載此文件,還是應該監聽#accountManager元素的顯示?

回答

0

原來應用程序使用的是router。希望這可以幫助某人在將來遇到同樣的問題。

它的代碼看起來是這樣的:

define([ 
    'jquery', 
    'underscore', 
    'backbone', 
    'vm' 
], function ($, _, Backbone, Vm) { 

    var AppRouter = Backbone.Router.extend({ 
     instance: null 
    }); 


    var initialize = function (options) { 

     var appView = options.appView; 
     var router = new AppRouter(options); 

     if ($('#accountManager').length > 0) { 
      require(['views/admin/AccountManager'], function (AccountManagerView) { 
       var accountManagerView = Vm.create(appView, 'AccountManagerView', AccountManagerView); 
       accountManagerView.render(); 
      }); 
     } 

     // Lots of other view ifs 

     AppRouter.instance = router; 

     Backbone.emulateJSON = false; 

     Backbone.history.start({ 
      root: returnRoot(), 
      pushState: 'pushState' in window.history 
      // the server is handling the initial route and rendering your deep link 
     }); 

    }; 

    var returnRoot = function() { 
     var pathname = window.location.pathname; 
     var pieces = pathname.split('/'); 
     if (pathname.indexOf('app_dev.php') > -1) { 
      return pieces[0]; 
     } 
     else { 
      return ''; 
     } 
    }; 

    return { 
     initialize: initialize, 
     AppRouter: AppRouter 
    }; 

});