3

私は正常に動作する次のコントローラーを持っています:

function Controller() {}

Controller.prototype = {
    getResult: function(project) {
        var that = this;

        jQuery.ajax({
            async: false,
            url: "/my-service/call?project=" + project,
            dataType: "json",
            success: function(data) { 
                that.result = data;
            }
        });
    }
};

AngularJS.scope。$bindを使用して、「var that=this;」を削除できるかどうかを確認したいと思います。ハック。ただし、以下は機能しません。

function Controller() {}

Controller.prototype = {
    getResult: function(project) {
        angular.scope.$bind(jQuery.ajax({
            async: false,
            url: "/my-service/call?project=" + project,
            dataType: "json",
            success: function(data) { 
                this.result = data;
            }
        }))();
    }
};

私は何が欠けていますか?

4

1 に答える 1

2

角度のある郵送に関するMiskoHeveryは、次のように応答しました。

Controller.prototype = {
    getStuff: function(project) {
        jQuery.ajax({
                    async: false,
                    url: "/service/get-stuff",
                    dataType: "json",
                    success: angular.bind(this, function(data) {
                        this.stuff = data;
                    })
                });
    }
};

彼はまた、jQuery.ajaxの代わりにangular.service。$xhrを使用することを提案しました。

于 2011-07-12T16:32:03.310 に答える