什么是需求列表中的模块使用,但在回调函数中没有

时间:2015-05-30 12:41:20

标签: javascript jquery dojo

我基本上有两个问题。  1。

  1. 在下面的代码片段中使用“abc / component / database / XYZSettings”有什么用途。它没有在回调函数中使用。

  2. 准备好功能后发生了什么。使用基础编辑

        <script type="text/javascript">
    require(
        [
            "dijit/registry",
            "dojo/ready",
            "awl/database/BaseEdit",
            "dojo/_base/connect",
            "awl/admin/Subscriptions",
            "abc/component/database/XYZSettings"
        ],
        function(registry, ready, BaseEdit, connect, Subscriptions){
            ready(function(){
                BaseEdit({
                    objId: "Settings",
                    readUrl:'/ui/settings/',
                    updateUrl:'/ui/settings/' ,
                    defaultsUrl:'/ui/settings',
                    creatable:false,
                    deletable:false
    
                });
            });
         }
    );
    </script>
    

1 个答案:

答案 0 :(得分:0)

关于第一个问题,某些模块在加载时会出现涉及副作用的用途,这些模块不需要直接引用它们的返回值。 Dojo本身的一些例子包括:

  • dojo/domReady!插件,它没有任何有意义的返回值,但在DOM准备好之前无法解析,从而延迟回调中的任何内容直到该点为止
  • 各种dojo/NodeList-*模块,可为所有dojo/NodeList个实例添加功能(例如dojo/query次呼叫返回)
  • dojo/query,包含在内,用于事件委托支持(涉及使用dojo/on,但不需要直接调用dojo/query

关于问题2,dojo/ready将等待,直到加载任何挂起的模块并且DOM准备就绪,然后再调用传递给它的回调。在现代Dojo应用程序中,通常不鼓励使用dojo/domReady!require

关于这里的具体模块的问题,任何人都不可能在不知道这些模块实际是什么的情况下说,而且我假设它们是你项目中的专有代码。