选项卡功能控制应转到服务器并检查唯一的电子邮件ID并返回成功或在errormessage中提到的失败。
我已经写了下面的代码,并尝试使用ng-change,ng-blur,但控制没有达到。
controller.js
checkUniqueEmail(emailId);
function checkUniqueEmail(emailId) {
MerchantRepository.checkUniqueEmail(emailId)
.then(function (response){
scope.errorMessage=response.data;
},
function(errResponse){
console.error('Error while fetching Produce Info:Merchant Side');
}
);
};
repository.js
this.checkUniqueEmail = function(emailId){
var defer = $q.defer();
//defer is units of work,promise is data from those defer
var merchantEmailPromise = http.post('/ABCD1.3/checkMerchantEmail/',emailId);
merchantEmailPromise.then(function(response){
errorMessage =response;
defer.resolve(errorMessage);
});
return defer.promise;
};
reg.html
<div class="col-sm-5 form-group">
<input type="email" style="width: 250px; height:40px;" class="form-control"
name="emailId"
ng-model="merchant.emailId" placeholder="Enter Email Id"
ng-minlength="5" ng-maxlength="50"
ng-change="checkUniqueEmail(emailId)" />
{{errorMessage}}
</div>
任何人都可以帮忙吗?尝试了更多的次,遗漏了空白。
谢谢
正如我在查询中看到的,只有"响应"承诺,所以请始终给予控制器响应,而不是KO。
this.checkUniqueEmail = function(emailId){
var defer = $q.defer();
//defer is units of work,promise is data from those defer
var merchantEmailPromise = http.post('/ABCD1.3/checkMerchantEmail/',emailId);
merchantEmailPromise.then(function(response){
errorMessage =response;
**defer.resolve(errorMessage);**
});
return defer.promise;
};
有些东西,我无法理解为什么是正确的响应,该参数称为errormessage。最后,您必须创建一个" defer. -revection(errormessage)";何时是KO,并告诉我们。
我已经解决了问题,如果有人需要
reg.html
<input type="email" name="emailId" ng-model="user.emailId" x-ng-blur="checkUniqueEmail(merchant.emailId)" required />
usercontroller.js
scope.checkUniqueEmail = function(email) {
Repository.checkUniqueEmail(email)
.then(function(response) {
var mEmail = response.data.status;
if (mEmail != null) {
scope.errorMessage2 = mEmail;
} else {
scope.errorMessage2 = "";
}
});
};
repository.js
this.checkUniqueEmail = function(email){
var defer = $q.defer();
var EmailPromise = http.post('/ProjectName/checkMerchantEmail/',email);
EmailPromise.then(function(response){
errorMessage =response;
defer.resolve(errorMessage);
});
return defer.promise;
};
从这里您的服务器端实现从数据库检查。