变量在作用域中不存在(使用requirejs/backbone)
variable doesn't exist in scope (using requirejs/backbone)
以下是我的bb视图的一部分:
define(['backbone', 'tools/logger', 'icanhaz', 'view/loader', 'text!template/root.ich',
'view/users', 'view/chart/monthly_balance', 'datatables'],
function(Backbone, logger, ich, loader, template,
UsersView, MonthlyBalanceChartView) {
// here I can see both `loader` and `template` variables
'use strict';
return Backbone.View.extend({
[...]
initialize: function(options) {
logger.init('root');
// I can't see `loader` and `template` here
},
[...]
});
});
问题是,我不能看到视图的初始化方法中的两个变量,我不知道为什么。我觉得应该把它封起来。我使用谷歌浏览器的开发人员工具断点进行测试。在use strict
之前,我可以看到一切(加载器和模板变量设置)。所有其他变量都可以访问。
例如,整个加载器文件是:
define(
['icanhaz', 'tools/logger'],
function(ich, logger) {
return {
loadTemplate: function(tpl) {
$(tpl).each(function() {
if (this.outerHTML) {
ich.addTemplate(this.id, $(this).text());
logger.log('LOADED', this.id);
}
});
}
};
});
这些变量未定义的原因是什么?
打开控制台,在network选项卡中,尝试查看是否加载了这个js文件
也许你需要使用shim命令来加载非模块文件
阅读这里的shim例子。https://github.com/requirejs/example-jquery-shim
希望能有所帮助。
相关文章:
- Backbone+RequireJS+Mediator模式导致视图逻辑短路和无限循环
- Backbone+RequireJS:使集合持久化
- Backbone + RequireJS: Collection.each() is not working
- RequireJS 2.0-定义我的Backbone.Return
- Requirejs+Backbone.js:类型错误:Can't在路由器中传递-路由器不是一个函数
- RequireJS BackBone 是未定义的
- 如何使用requirejs和Backbone.Marionette同步/组织模块
- 与 RequireJS 和 Backbone 的一对多和一对一关系
- 使用 RequireJS 2.0.1 和填充码加载 jQuery、Underscore 和 Backbone
- Requirejs + Backbone Uncatch TypeError:无法读取未定义的属性“each”
- backbone,requirejs,grunt requirejs使用外部模板
- Backbone + RequireJS "define is not defined"
- 全局使用 jquery,backbone,下划线使用 requirejs
- 在测试Backbone+RequireJS应用程序时,最好提前加载整个应用程序
- yeoman generator-backbone和RequireJS -在构建时将所有模块连接到单个文件中
- 变量在作用域中不存在(使用requirejs/backbone)
- 2014年在RequireJS中使用Backbone, Underscore和jQuery的依赖
- 动态加载Backbone/RequireJs中的依赖项
- RequireJS + Backbone:导入视图模块会与模型模块发生冲突
- Requirejs + Backbone Uncatch TypeError: 無法讀取未定義的屬性「Model」