zoukankan      html  css  js  c++  java
  • arcgis api for javascript学习(2016.10.18)

    自定义模块的定义和使用:

      dojo的自定义模块使用define。

      dojo的js模块就是一个js文件,文件中使用如下形式定义:

      

    define(
        [
        "dojo/_base/declare",
        "dojo/_base/lang",
        "esri/request"
        ],
        function(declare,lang,esriRequest){
            return declare(null,{
                constructor:function(options){
                    this.distance=options.distance||'20mi';
                },
                func:function(){
                    return this.distance;
                }
            });
        }
    );

      格式和require类似,第一个参数表示会用到的模块;第二个参数是一个函数,函数参数和第一个参数对应,函数体中进行相关代码编写。

      define定义模块,但是模块只是一个组织概念,要使用自定义的函数、变量,我们需要一个结构将这些内容打包并返回。我们使用declare定义这种结构(或者叫类),然后在define第二个函数参数的返回值中返回,然后我们在外面的模块就可以使用这里定义的函数和变量了。

      

    模块的使用:

      模块定义好,放在项目的一个文件夹中,但是如何使用require进行访问呢?这需要在dojo初始化配置参数中,对应路径:

      

    var dojoConfig={paths:{extras:location.pathname.replace(//[^/]+$/,'')+"/scripts/dtest"}}

      在引入dojo,或者init之前定义dojoConfig变量,格式如上:extras是自定义的虚拟路径,用于在requre引入的时候使用。后面则是自定义的js模块文件所在的url。

      然后就是引入:

      

        require([
          "extras/tmodule",
          "dijit/layout/BorderContainer", 
          "dijit/layout/ContentPane", 
          "dijit/TitlePane",
          "dojo/domReady!"
        ], function(mtest) {
            alert(mtest);
            alert(typeof mtest);
          var b = mtest({}).c2({});
          alert(b.getm());
          alert(s.getMore());
        });
  • 相关阅读:
    二分图最大匹配的König定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/z964166725/p/5972153.html
Copyright © 2011-2022 走看看