从AngularJS中的另一个类访问控制器属性

时间:2015-12-12 18:19:37

标签: javascript angularjs

今天我在使用AngularJS时发现了以下问题。

我的代码如下:

app.controller("SomeController", function(){

            this.foo = true

            this.changeFoo = function(bool){

                this.foo = bool
            }

            api.check(function(response){
                this.changeFoo(response.bar)
            })
        })

(顺便说一下:响应& response.bar 未定义)

api 是我的类 API 的一个实例,在我的Angular代码之外定义。

问题是,我无法在回调函数中更改 this.foo

我该怎么做才能访问 this.foo

编辑:

我尝试将 this 作为参数传递,结果是相同的

api.check(this, function(scope, response){

                scope.foo = response.bar
            })

范围似乎是在此函数中定义的,但更改不会影响任何内容

1 个答案:

答案 0 :(得分:1)

在Api通话之前,您需要将this指定给角度代码中的其他变量。然后使用该变量访问this变量。喜欢这个

app.controller("SomeController", ['$scope',function($scope){

        this.foo = true;

        this.changeFoo = function(bool){

            this.foo = bool;
            $scope.$apply();
        };
        Var controller=this;

        api.check(function(response){
            controller.changeFoo(response.bar);
        });
    }]);