我已經創建了一個包含唯一我想要使用的功能,新的client.messages2.js文件,並改寫了根據喬納森的建議,這些函數調用Javascript對象:錯誤從另一個文件
var clientMessages = function(){
var self = this;
self.message = function (type) {
var that = {};
that.type = type;
return that;
};
self.request = function (type) {
var that = message(type);
return that;
};
self.request = function (type) {
var that = message(type);
return that;
};
self.requestConfiguration = function (type, params) {
var that = request(type);
[...some code here...]
return that;
};
self.requestGetConfiguration = function (params) {
var that = requestConfiguration("RequestGetConfiguration", params);
return that;
};
self.requestSetConfiguration = function (params) {
var that = requestConfiguration("RequestSetConfiguration", params);
return that;
};
}
var clientMessages = new clientMessages();
以下文件加載在HTML文件中:
<script src="{{ url_for('static', filename='lib/jquery-1.11.3.min.js') }}"></script>
<script src="{{ url_for('static', filename='lib/require.js') }}"></script>
<script src="{{ url_for('static', filename='scripts/clientlibs/client.messages2.js') }}"></script>
在main.js的代碼是:
var clientMessages = require(["/static/scripts/clientlibs/client.message2.js"]);
var request = clientMessages.requestGetConfiguration({});
我也試着requestGetConfiguration沒有括號:
var clientMessages = require(["/static/scripts/clientlibs/client.message2.js"]);
var request = clientMessages.requestGetConfiguration;
在第一種情況下,我得到這個錯誤:
Uncaught TypeError: clientMessages.requestGetConfiguration is not a function
在這兩種情況下,我得到如下:
Failed to load resource: the server responded with a status of 404 (NOT FOUND) require.js:8 Uncaught Error: Script error for "/static/scripts/clientlibs/client.message2.js" http://requirejs.org/docs/errors.html#scripterror
請注意我可以在Chrome瀏覽器中查看和編輯client.message2.js。它位於localhost:5000/static/scripts/clientlibs/client.message2.js
聽起來像範圍問題。你可能需要提供更多的代碼,這樣我們才能確定「var request」的範圍。 – bob
我已經添加了更多的代碼,希望現在更清楚。 – Galil
在你的代碼的最後一行,你通過clientMessages的實例來覆蓋你的構造函數clientMessages,並且在require()行中使用相同的(全局的)... – fast