从回调内部清除数据

时间:2015-08-07 11:38:03

标签: javascript angularjs

我有以下代码段。我试图澄清评论,但我无法在回复中做到这一点。有人可以帮我弄清楚如何做到这一点。

app.controller('CommentController', function($scope, $http) {   
    $scope.addReview = function(obj) {
        this.comment.id = obj.id;

        $http.post('/save', this.comment).
          then(function(response) {
              obj.comments.push(response.data);
              this.comment = {};
          }, function(response) {

          });

    };

});

1 个答案:

答案 0 :(得分:2)

这是因为范围:'this'是指'then'回调。 试试这个:

app.controller('CommentController', function($scope, $http) {   
    $scope.addReview = function(obj) {
        // retrieve the scope
        var me = this;
        this.comment.id = obj.id;

        $http.post('/save', this.comment).
          then(function(response) {
              obj.comments.push(response.data);
              // use the upper reference
              me.comment = {};
          }, function(response) {

          });

    };

});

此外,您可能会使用$ scope。$ apply函数。