删除requirejs中的模块以再次触发它

时间:2014-08-04 13:01:14

标签: jquery html requirejs

所以我使用Require.js动态加载js文件到目前为止工作得非常好。但是如何卸载可以重新启动它的模块。

一个简单的例子:

require(["jquery"], function($) {
  $('#trigger').click(function() { 
    require(["view"], function(fn) {
        // some callback
    });
  });
});

我正在加载jquery以将clickhandler功能分配给名为#trigger的按钮。我还有一个view.js文件,其中包含一个alert("test");

因此,当我加载页面并按#trigger时,一切都按预期工作。但我无法再次按#trigger,因为alert()内的view.js已经被解雇了。每次按#trigger

时,如何卸载此模块以获取警报

由于

1 个答案:

答案 0 :(得分:0)

您需要将代码包装在视图中,以便它不会自动触发。要求自动调用的东西是非常罕见的。因此,如果您将代码更改为以下内容,则可以多次调用视图函数:

require(["jquery", "view"], function($, view) {
  $('#trigger').click(function() { 
      view.load();
  });
});

您的视图文件类似于:

define(["jquery"], function ($) {
    var load: function () {
        // Do some stuff here
    }

    return {
        load: load
    }
});