RequireJS - 在同一文件中调用函数

时间:2016-08-04 07:42:31

标签: javascript requirejs

我试图将一个函数作为来自同一文件中另一个函数的回调。

下面的代码显示没有错误,但什么也没做 - 是否有不同/更好的方法来执行此操作?

我从require配置文件(require-main.js)调用第一个函数并且工作正常

define(['require-main'], function() {
    require(['getJSON'], function(getJSON) {
        getJSON.stations();
    });
});

getJSON.js

define(['jquery', 'domChange', 'setUp'], function($, domChange, setUp) {
    var self = this;
    return {

        stations: function() {    
            $.get('/js/ajax/stations.json', function(sol) { /* local JSON */
                tmv.stations = sol;
                console.log(sol); /* this is fine */
                self.lines; /* <-- call next function */
            });
        },

        lines: function() {
            console.log('foo'); /* NOT called */
            $.get('/js/ajax/lines.json', function(lines) { /* local JSON */
                /* do something */
            });
        }
    }
});

I've seen this question but I can't work this way as the order is not predetermined

更新:如上所述,尝试将this缓存到var但仍然没有快乐

3 个答案:

答案 0 :(得分:3)

尝试使用 getJSON.js 的内容:

-std=c++0x

答案 1 :(得分:1)

应该是

tmv.stations = sol; console.log(sol); /* this is fine */ this.lines(); /* <-- Actually calls the function */

答案 2 :(得分:0)

也许你应该在调用ajax函数之前保留对 this 关键字的引用

template..create