这是我的部分观点 -
<form action="" ng-controller="Ctrl as forgot" name="forgotForm" ng-submit="forgotForm.$valid && forgot.sendPost()">
<div class="form-group row">
<label for="email" class="col-sm-2 form-control-label">Email address</label>
<div class="col-sm-9">
<input type="email" ng-model="forgot.emailData" class="form-control" id="email" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" placeholder="Email Address" required/>
</div>
</div>
<div class="form-group row">
<div>
<button class="btn btn-info submitButton">Submit</button>
</div>
</div>
</form>
这是我控制器中的方法 -
self.sendPost = function() {
console.log(self.emailData); //the value I entered in the input box
$http.get("https://api?email=rq895@msstae.edu")
.success(function(data, response, headers, config) {
console.log("Success Data " + response);
})
.error(function(data, response, headers, config) {
console.debug("Returned Data ");
});
};
例如,如果我在输入框中输入值abc@abc.com
,我会看到我在表单中输入的实际值已发送到api(self.emailData的值)。我收到200的答复。
以下是我遇到的问题,
1)当我明确指定要发送的电子邮件地址为self.emailData
时,为什么会发送rq895@msstae.edu
2)由于我的响应为200,为什么成功回调没有被解雇。
答案 0 :(得分:0)
不推荐使用成功和错误。尝试将代码重构为:
self.sendPost = function() {
console.log(self.emailData); //the value I entered in the input box
$http.get("https://api?email=rq895@msstae.edu")
.then(function successCallback(response) {
console.log(response)
}, function errorCallback(response) {
console.debug(response);
});
};
答案 1 :(得分:0)
第一个提示: 请不要在控制器中有业务逻辑。将其移入服务并将服务注入控制器。 根据您的回答,尝试使用然后与成功和错误处理程序。它的一个例子是beloe
$http.get(URL).then(successCallback, errorCallback);
function successCallback(){
}
function errorCallback(){
}
希望这会有所帮助。
快乐学习:)