簡體   English   中英

router.js函數未執行

[英]router.js Function not executed

 // Filename: router.js console.log('TEST ROUTE'); define([ 'jquery', 'underscore', 'backbone', 'views/jobs/list' ], function($, _, Backbone, JobListView){ var AppRouter = Backbone.Router.extend({ routes: { // Define some URL routes '/dalo/jobs': 'showJobs', // Default '*actions': 'defaultAction' } }); var initialize = function(){ var app_router = new AppRouter; app_router.on('route:showJobs', function(){ // Call render on the module we loaded in via the dependency array // 'views/jobs/list' console.log('Show Job Route'); var jobListView = new JobListView(); jobListView.render(); }); app_router.on('defaultAction', function(actions){ // We have no matching route, lets just log what the URL was console.log('No route:', actions); }); Backbone.history.start(); }; return { initialize: initialize }; }); 

我main.js的一部分,我沒有使用NEW,因為它給問題提供了一個不確定的函數,即它是否與上面的錯誤有關

require(['app'], function(AppView){
    AppView.initialize();
});

我做了一個console.Router.initialize()之后的日志; 在app.js上,它可以顯示。 我還在該應用程序router.js中一直在上面進行控制台日志記錄,除此之外,它也沒有顯示該函數內的任何內容。

控制台僅顯示2個控制台日志(在Route.Initialize之后和router.js定義之前

有什么建議嗎? 我正在使用http://backbonetutorials.com/organizing-backbone-using-modules/

我的App.js

define([
    'jquery',
    'underscore',
    'backbone',
    'router', // Request router.js
], function($, _, Backbone, Router){
    var initialize = function(){
        // Pass in our Router module and call it's initialize function
        Router.initialize();
        console.log('Router Initialized');
    }

    return {
        initialize: initialize
    };
});

可能您正在使用非AMD版本的Backbone.js和Underscore.js。

這樣,您必須在主文件/配置文件中添加所謂的“墊片”。

shim :為不使用define()聲明依賴關系和設置模塊值的較舊的傳統“瀏覽器全局變量”腳本配置依賴關系,導出和自定義初始化。 http://requirejs.org/docs/api.html#config-shim

如您所見,此依賴關系已設置並導出了lib,以便您可以在腳本中使用它。

因此,在您的main / config文件中,在路徑之后嘗試添加此勻場件:

paths: {
    ...
},
shim: {
    'backbone': {
        deps: ['jquery','underscore'],
        exports: 'Backbone'
    }
}   

現在我想你可以繼續...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM