1

我对 dojo 很陌生,我正在尝试使用 lang.hitch 方法来处理我的回调,但是在使用它时我不断收到“未捕获的引用错误:未定义错误”。我确定我做错了什么 - 我只是不确定它是什么。 this指的是我在 initializeLocators 函数中新创建的对象,在我逐步执行代码时进行了验证。showResults 方法的 Candidate 参数从事件处理闭包返回。谢谢你的帮助。

我的课:

define(["dojo/_base/declare", ..., "dojo/_base/lang", "dojo/on", "dojo/dom", ...], 
function(declare, ..., lang, ...){
    var SDCLocateClass = declare(null, {
        ...,
        constructor: function() {
            this.initializeLocators();
        },
        initializeLocators: function() {
            this.addressNode = dom.byId("resultsDiv");


            //set up the address locator functionality
            this.locator = new Locator("http://...");
            this.locator.on("address-to-locations-complete", lang.hitch(this, showResults));
        },
        showResults: function(candidates) {
            ...
        },
    });
    return SDCLocateClass;
});
4

1 回答 1

2

showResults是一个未定义的变量。使用this.showResults或使用字符串"showResults"

this.locator.on("address-to-locations-complete", 
    lang.hitch(this, this.showResults));
于 2013-10-04T17:10:44.490 回答