2014-09-26 132 views
1

我是require.js的新手,所以我可能沒有正確使用它,但據我所知,我找不到導致錯誤的原因。未捕獲TypeError:未定義不是使用require.js時的函數

結構

index.html 
Scripts\ 
    - jquery-2.1.1.min.js 
    - require.js 
    \app 
    - main.js 
    \lib 
    - work-requests.js 
    - controller-base.js 
    - util.js 

的index.html

<script src="Scripts/require.js" data-main="Scripts/app/main"></script> 

main.js

requirejs.config({ 
    baseUrl: 'Scripts/lib', 
    paths: { 
     jquery: '../jquery-2.1.1.min', 
    }, 
}); 
requirejs(['jquery', 'util', 'work-requests'], function ($, util, work_requests) { 
    $(function() { 
    var foo = new work_requests.get_all(); // <-- error "Uncaught TypeError: undefined is not a function 
}); 

工作requests.js

define(['controller-base'], function (controller_base) { 
    return function() { 
     var that = controller_base('work-requests') 

     return that; 
    } 
}); 

控制器base.js

define(['jquery'], function ($) { 
    return function (controller_name) { 
     var that = {}; 
     that.controller = controller_name; 

     that.get_all = function() { 
      return $.ajax({ 
       type: 'get', 
       contentType: 'application/json', 
       url: _api_root + '/' + that.controller, 
      }); 
     }; 
     return that; 
    }; 
}); 

util.js中

define({ 
    foo: function(data){}, 
}); 

回答

2

你require.js設置是完全沒問題。你有沒有嘗試改變

var foo = new work_requests.get_all(); 

var foo = new work_requests(); 
var bar = foo.get_all(); 

相關問題