Javascript 在DOM中找不到RequireJs对象(用于UI访问)
我正在尝试设置requireJs,并遵循requireJs部分的“简单单页应用”示例 我的问题是在DOM中找不到要使用的对象。如果我在加载期间暂停/调试,我可以在控制台中运行这些方法,但使用“窗口”,我无法在DOM中找到要从UI调用的对象。下面显示的单击事件将失败。请问我做错了什么?这是我的密码: 用户界面 Main.jsJavascript 在DOM中找不到RequireJs对象(用于UI访问),javascript,dom,requirejs,Javascript,Dom,Requirejs,我正在尝试设置requireJs,并遵循requireJs部分的“简单单页应用”示例 我的问题是在DOM中找不到要使用的对象。如果我在加载期间暂停/调试,我可以在控制台中运行这些方法,但使用“窗口”,我无法在DOM中找到要从UI调用的对象。下面显示的单击事件将失败。请问我做错了什么?这是我的密码: 用户界面 Main.js define(function (require) { var man = require('man'); return man; }); Man.js
define(function (require) {
var man = require('man');
return man;
});
Man.js
define(["dog"], function (dog) {
console.log("man js loaded");
var dogAlert = function () {
alert(dog.getMyDogsNameReq());
};
var man = {
dogAlert: dogAlert,
}
return man;
});
Dog.js
define(function () {
var getMyDogsNameReq = function () {
return 'fido';
};
var dog = {
getMyDogsNameReq: getMyDogsNameReq,
};
return dog;
});
非常感谢您的帮助。@source.rar并为我指明了正确的方向
基本上,如上面的评论所述,模块只是在加载。为了像我尝试的那样访问它们,需要以某种形式将它们分配到DOM中
将我的main.js文件更改为以下内容将对其进行排序
新main.js:
define(function (require) {
var man = require('man');
window.man = man;
});
如果愿意的话,您需要将您的JavaScript和HTML代码分开,因为RequireJS将您的模块包装在单独的闭包类名称空间中。从JavaScript中访问DOM,而不是相反。很抱歉,我不太明白你的答案。我曾经在一些应用程序上工作过,这些应用程序中设置了ViewModels,并且可以从UI访问。我不想使用js文件中的document.getElementById,如一些在线示例所示,因为我打算及时使用Knockout viewmodels。请你详细说明一下我可以如何访问它们?我是否错过了一些可以让我进入它们的东西?我自己不熟悉击倒,但我想知道这是否有帮助,谢谢@source.rar。我想这会对我有帮助。
define(function () {
var getMyDogsNameReq = function () {
return 'fido';
};
var dog = {
getMyDogsNameReq: getMyDogsNameReq,
};
return dog;
});
define(function (require) {
var man = require('man');
window.man = man;
});