使用 requireJS 加载标准 JavaScript 文件
Load standard javascript files with requireJS
我正在尝试requireJS,以便使用Knockout改善Javascript在 ASP.NET MVC应用程序上的加载。
我有一些文件定义了自定义 ko 绑定,如下所示:
(function (ko, bindings) {
bindings.stopBinding = {
init: function () {
return { controlsDescendantBindings: false };
}
};
bindings.anotherBinding = { ... };
})(ko, ko.bindingHandlers);
如果我尝试以这种方式将其加载为 requireJS 模块:
define(['jquery', 'knockout', 'custom/knockout.bindings'], function ($, ko){
ko.applyBindings(...);
});
我收到一个ko is not defined
错误。
我知道我可以将这个文件包含在一个需要回调中,例如为了使其工作:
require(['knockout'], function (ko) {
(function (ko, bindings) {
bindings.stopBinding = {
init: function () {
return { controlsDescendantBindings: false };
}
};
bindings.anotherBinding = { ... };
})(ko, ko.bindingHandlers);
});
有没有另一种方法可以让这个文件工作,而不必更新应用程序中的每个旧版JS文件?我想过使用填充程序,但我一无所获,但我是一个 requireJS 的菜鸟,所以也许我错过了一些明显的东西。
多亏了这个答案,我设法将 Knockout 注入到全局命名空间中,使其可用于需要它的遗留 Javascript 文件。
首先,创建一个在全局命名空间中注入 ko 的模块:
define('knockout.inject', ['knockout'], function (k) {
window.ko = k;
return k;
});
然后,将模块映射到挖空,以针对每个挖空依赖项执行它。
var require = {
baseUrl: "/Scripts",
paths: {
//...
"knockout": "knockout-3.3.0.debug",
"knockoutbindings": "knockout.bindings",
},
shim: {
"knockoutbindings": {
deps: ["knockout"]
}
},
map: {
// inject ko back in the global namespace
'*': {
'knockout': 'knockout.inject'
},
// prevent cycles
'knockout.inject': { 'knockout': 'knockout' }
}
};
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件