私はこれに苦労しています:
Module1.js ファイルにこの単純なモジュールがあります。
define(['dojo/_base/declare', 'esri/map'], function (declare, map) {
return declare(null,
{
name: "Module 1 name",
constructor: function() {
this.name = "module 1";
//this.age = age;
//this.currentResidence = currentResidence;
},
doSomething: function() {
alert("calling from Module1");
}
});
});
Module1 から継承する Module2 を定義しようとしていますが、正しい構文が見つからないようです: これは私が現在持っているものです:
define(["dojo/_base/declare",
"esri/map",
"tut/Module1"],
function (declare, map, Module1) {
return declare(null, [Module1], // or tut/Module1
{
name: "Module 2 name",
constructor: function () {
this.name = "module 2";
//this.age = age;
},
doSomething: function () {
this.inherited(arguments); // Call superclass method...
alert("calling from Module 2");
},
doSomething1: function () {
alert("calling do soething 1 from module 2");
}
});
});
私のコードのどこかで、私はこれをやっています:
require(["tut/Module1", "tut/Module2"], function (Module1, Module2) {
var m = new Module1();
m.doSomething();
var m2 = new Module2();
m2.doSomething();
});
次のように dojo をロードする ESRI スクリプトをロードする直前に、次の dojoConfig を定義しています。
<script type="text/javascript">
var dojoConfig = {
async : true,
packages: [{ name: "tut", location: liveString + '/scripts/xxxx/utilities'}]
};
</script>
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.0compact"></script>
Module1 への呼び出しが機能し、パッケージの定義が正しいことを示しています。ただし、Module2 を呼び出すと、オブジェクト [オブジェクト オブジェクト] にメソッド 'doSomething' がないという例外がスローされます。マニュアルを行ったり来たりしながら、さまざまな順列をいくつか試しましたが、正しい構文が見つかりません。今は推測しているだけなので、助けが必要になるでしょう。
Dojo 1.7 構文を使用して Module1 から継承するにはどうすればよいですか?