1

ajaxリクエストを実行して表示する次のコードがあります。ここでは、ajax で返された html を mainCanvas に挿入します。" " へのコンテキストを試みましthisたが、機能しませんでした。アイデアを教えてください。

this.mainCanvasまた、他の要素にも html を挿入する必要があるため、コンテキストを " " に設定したくありません。

    var RequestController = {
            mainCanvas: $("#mainCanvas"),   
            panelCanvas: $("#subDiv"),
            Start:function(){
                $.ajax({
                    url: "http://myserverurl.com",
                    context: this,
                    success:function(data){
                        this.mainCanvas.html(data);
                    }
                });
            }
    };
4

3 に答える 3

1

レンダリングされる前にhtmlをダイビングに入れようとしているようです。DOM が完全に読み込まれたら、常に html を挿入します。関数内でこれを確認でき$(document).ready()ます。

于 2013-04-22T14:03:08.883 に答える
1

次のようなことを試してください:

   created: function() {
    var vueInstance = this;
    $.ajax({
    url: urls.api.getStates,
    context: vueInstance,
    type: 'GET',
    success: function (response) {
        $.each(response, function (stateCodeId, name) {
            var stateObj = new Object();
            stateObj.id = stateCodeId;
            stateObj.name = name;
            vueInstance.states.push(stateObj);
        });
    },
    error: function (response) {
        console.log(response);
        $('#errorMsg').show();
        $("#errorMsg").focus();
        this.ErrorHeader = "Error(s)";
        this.ErrorMessage = "<li>An error occurred while retrieving the list of schools. Please try again later.</li>";
    }
})
}

この問題に30分ほど費やしました。スレッドが古いことはわかっていますが、これが誰かの助けになることを願っています!

于 2017-02-22T20:02:08.493 に答える