angular - ionic 3 角度数据不会动态变化
问题描述
我正在尝试创建一个登录页面,该页面从服务器获取用户数据并显示错误登录/密码的错误消息,代码如下所示:
login(x) {
// alert(this.form.value)
this.errmsg = "";
if (x.uid == "" || x.pwd == "") {
this.errmsg = "Fields should not be empty";
}else{
// parameter to pass on class
var params={
myclass:this,
}
// Getrequest to get element by id
var GetUserById = {
method: 'GET',
url: 'http://192.168.136.136:8100/User/' + x.uid + '/',
headers:
{
'Postman-Token': 'a81c98b6-5921-4ab5-bfbc-27dcff4b36ea',
'Cache-Control': 'no-cache'
}
}
var check=(body, x) =>{
body=JSON.parse(body)
if (body.length == 0) {
return false
}
else {
var uinfo = body[0]
if (uinfo.Password == x.pwd) {
window.sessionStorage.setItem('username', uinfo.UserId);
window.sessionStorage.setItem('Role', this.defineRole(uinfo.Role));
// window.sess
return true
}
else{
return false
}
}
}
var showError=() =>{
params.myclass.errmsg= "Invalid Username or Password"
}
request(GetUserById, function (error, response, body) {
if (error) throw new Error(error);
if(check(body, x)){
params.myclass.navCtrl.push(Home, {});
}
// createVerify
else{
showError()
return
}
});
}
}
html:
<form [formGroup]="form" (ngSubmit)="login(form.value)">
<ion-list>
<ion-item>
<ion-input type="text" formControlName="uid" placeholder="Username"></ion-input>
</ion-item>
<ion-item>
<ion-input type="password" formControlName="pwd" placeholder="Password"></ion-input>
</ion-item >
</ion-list>
<p id="almsg" class="text-right small" >{{errmsg}}</p>
<div padding>
<button ion-button type="submit" color="basic" block >Sign In</button>
</div>
</form>
showerror() 中的 errmsg 不会影响 html 页面,除非我点击其中一个输入。我试过console.log,但效果很好,
解决方案
首先 params.myclass.errmsg和this.errmsg不一样,你需要将params.myclass.errmsg更改为this.errmsg然后才会显示
修改sohowError
和request
var showError=() =>{
this.errmsg= "Invalid Username or Password"
}
request(GetUserById, function (error, response, body) {
if (error) throw new Error(error);
if(check(body, x)){
params.myclass.navCtrl.push(Home, {});
}
// createVerify
else{
showError();
return false;
}
});
推荐阅读
- nuget - 从 Artifactory Nuget 存储库获取最新版本
- reactjs - React-Native,由于批量更新,状态没有按预期改变,但我该怎么办?
- javascript - React:在 HTML 中使用 React 时如何导入另一个要使用的类
- mongodb - 在 docker 中运行 Mongodb Ops 管理器
- python - Python 将科学记数法写入文件;如何以十进制写入文件?
- jquery - 动画中的居中元素
- android - 地理围栏仅在地图打开时准确触发
- netsuite - nlapiSendEmail 未附加到自定义记录
- react-native - React Native Scroll View 和 Flex Children
- java - 如果应用程序由于其他未经处理的异常而崩溃,SQLDatabases 是否会关闭?