在POST请求中使用这个vs $ scope
这个问题在这里已经有了答案:
你需要认识到Javascript有多个作用域,而this
关键字指的是你所在的作用域。
然后,就像@Henri S提到的那样,你也应该认识到你的控制器的范围,它是一个JavaScript构造器函数,与你在里面使用的$scope
。 Angular使用的$ scope是一个与控制器相关的对象,它真的是一个开始的视图模型。 你的HTML,在某个控制器的控制下,可以“访问”这个对象。 如果您创建控制器链,则$ scope将原型继承。
如果我们将此应用于您的代码:
var app = angular.module('TM', []);
app.controller('tableController', function($scope, $http){
var self = this; //We capture a reference/value of the scope of your controller
this.formData = {};
this.currentDataObject : {restURL: "../protocols"}
// Define process for submitting form
this.processForm = function() { //Here begins a new javascript scope
console.log('Inside processForm method');
$('#addEntry').modal('hide');
console.log(self.formData); // this will refer to the this.formdata
$http({
method : 'POST',
url : self.currentDataObject.restURL,
data : JSON.stringify(self.formData),
headers : {
'dataType' : "json",
'contentType' : "application/json"
}
})
.success(function(data) {
console.log('Success: ' + data);
//Empties the object after the POST request is done...
self.formData = {}
})
.error(function(data){
console.log('Error ' + data);
});
};
});
$ scope!= this。
'这'是上下文敏感的,与他的'直接父'有关。
如果使用'controller as'语法,则不需要$ scope。
但是,如果您仍想使用$ scope,请在控制器中使用$ scope.formData。
链接地址: http://www.djcxy.com/p/77795.html上一篇: the use of this vs $scope in a POST request
下一篇: What's the difference between these 2 Angular code snippets?