Dojo FilteringSelectのコールバックで、次のエラーが発生し続ける:TypeError: this._url is undefined
TypeError:Dojo FilteringSelect onChangeコールバックでthis._urlが未定義
私はこれに私のコードを簡素化:
var testFeatures = [
{ "id": 1, "Adresa": "Pyšvejcova 6, Kotěhůlky"},
...
];
var filteringSelect = new FilteringSelect({
id: "testSelect",
autoComplete: false,
searchAttr: "Adresa",
store: new Memory({ data: testFeatures }),
onChange: this.onSelected
}, "testSelect");
filteringSelect.startup();
//end of the function, still in the same define callback
onSelected: function() {
//custom processing
var queryTask = new esri.tasks.QueryTask(this.serviceUrl);
var query = new esri.tasks.Query();
query.outFields = ["OBJECTID"];
query.where = "Adresa=" + dojo.byId("testSelect").value;
query.returnGeometry = true;
queryTask.execute(query, this.zoomToSelected);
}
zoomToSelected: function (featureSet) {
//custom map processing
}
とHTML:
<input id="testSelect" data-dojo-attach-point="testSelect" />
私は問題だ見当がつかない、グーグルは私に似て何のケースを発見しました。 FireBugは、このエラーはinit.jsで発生すると述べています。コンソールは199行目ですが、問題のコード(...nction(){},onExecuteForCountComplete:function(){},onExecuteForExtentComplete:fun...
)は256行目です。
問題の原因として、ArcGIS JavaScript APIまたはWeb AppBuilderが考えられます。これは「ArcGIS重い」部品の1つではないようですしかし、私は確かに分かりません。 ArcGIS JS API 3.15(Dojo 1.10)およびWeb AppBuilder(開発者向けバージョン1.4)です。
編集:@KenFranqueiroとthis postの助けを借りて私は少し進歩しました。私はonChange
コールバックを完全に理解しているとは言えませんが、名前付き関数を呼び出すときにかっこは省略しました。 onSelected
は依然として呼び出されていませんでしたが、入力データを変更してid
を含むように修正しました。しかし、それは主要な問題を解決していませんでした...
今や古い良いTypeError: this._url is undefined
はqueryTask.execute
で、またはそれとzoomToSelected
の方法の間に発生します。エラーがそれの右にあると思われるので、「A」の後に=でポインタが
...e:function(a,b,c,d,f){var m=f.assembly;a=this._encode(n.mixin({},this._url.query...
があります:とエラーが256行目に変更が起こる正確な場所、列351は、コード参照以下存在しないものと何かを混ぜようとしている。 init.js
のthis
はどういう意味か分かりません。残念なことに、dojoのコアコードは、難読化されていないものの、ほぼundebuggableです。これは私の唯一の選択肢ですか、それとも誰かが解決する方法を知っていますか?
したがって、init.js
をデバッグすることはそれほど難しくありませんでした。QueryTask
はthis
となります。私が知る限り、これは_url
属性を持つべきではありません。だから、私はqueryTask
にも間違いがあるはずです。質問、アーカイブの
廃止一部:
私はこの問題は、私は本当に理解していないonChange
コールバックの引数、によって引き起こされる可能性があるかどうかだろう。 the official oneのように、onChangeイベント・セットを持つDojo FilteringSelectのいくつかの例を読んだことがあります。通常、それは何らかの議論をしていますが、私はそれが何を意味するのか、どこから得られるのか分かりません。公式の例では、それはdiv id
に相当し、他には何もありません。しかし、id
はどのように変数に変換され、それがid
であるとの私の前提が正しいかどうかは問わない。 detailed documentationはあまり役に立ちません。
古い編集:testSelect
が対象です。それがdom
で暗黙的に作成されたと思われます - それはthis.domNode
の子ノードです。ですから、どこから来たのか理解していますが、変更の際に呼び出される別の関数を準備する方法や、正しい構文が何であるかは分かりません。
また、私は正確にどこに問題があるのか分からないthis._url
が存在するはずです。私の例では、this
はdijitを指していますが、問題が発生しているinit.js
の部分のスコープが何であるか分かりません。
私は2つのsubquestions(init.js
でこのonChange
コールバックおよび同定に混乱)されているどのくらいの関連わからないんだけど、私はエラーがでonChangeイベントでスローされているので、彼らは同じ問題の症状ですと仮定私のコード。
「onSelected」とは何ですか?それは関数を返す関数ですか?さもなければ、実際には 'onChange'を設定するときに*呼び出すことは実際には望んでいないでしょう...そのために、' testSelect'は変数として定義されていますか? –
@KenFranqueiro:編集済み。私はそれが今より明らかであることを願っています。 –