Requirejs AMD模块中变量的生命周期
下面是我保存为名为listView.js的文件的代码。我想知道内部变量是如何工作的。例如,变量Requirejs AMD模块中变量的生命周期,requirejs,backbone-views,Requirejs,Backbone Views,下面是我保存为名为listView.js的文件的代码。我想知道内部变量是如何工作的。例如,变量dtRngPckr是在主干内的initialize.View中定义的,每当应用程序移动到另一个部分时,我调用onClose函数使所述变量为空。当我需要重用这个模块时,渲染函数中一定会出现错误。它触发的错误不是一个函数 define(function (require) { "use strict"; var $ = require('jquery'), _
dtRngPckr
是在主干内的initialize.View
中定义的,每当应用程序移动到另一个部分时,我调用onClose函数使所述变量为空。当我需要重用这个模块时,渲染函数中一定会出现错误。它触发的错误不是一个函数
define(function (require) {
"use strict";
var $ = require('jquery'),
_ = require('underscore'),
Backbone = require('backbone'),
dtRngPckr;
return Backbone.View.extend({
initialize: function (opt) {
dtRngPckr = require('daterangepicker');
},
render: function () {
dtRngPckr();
},
onClose: function () {
dtRngPckr = null;
}
});
});
有人能告诉我这个变量到底是如何工作的吗?RequireJS缓存模块的返回值,因此它只需要获取一次,所有先前的变量都在实例之间共享。要对每个实例使用单独的
daterangepicker
,可以将其附加到视图:
return Backbone.View.extend({
initialize: function (opt) {
this.dtRngPckr = require('daterangepicker');
},
render: function () {
this.dtRngPckr();
},
onClose: function () {
this.dtRngPckr = null;
}
});
您能否在问题中添加一个指向您正在使用
require('daterangepicker')加载的库的链接?
?谢谢。将其附加到视图是最好的方法。我认为这可能是目前的解决方案。