Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在DOM中找不到RequireJs对象(用于UI访问)_Javascript_Dom_Requirejs - Fatal编程技术网

Javascript 在DOM中找不到RequireJs对象(用于UI访问)

Javascript 在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

我正在尝试设置requireJs,并遵循requireJs部分的“简单单页应用”示例

我的问题是在DOM中找不到要使用的对象。如果我在加载期间暂停/调试,我可以在控制台中运行这些方法,但使用“窗口”,我无法在DOM中找到要从UI调用的对象。下面显示的单击事件将失败。请问我做错了什么?这是我的密码:

用户界面

Main.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;
});