2017-05-05 15 views
1

私は4つの入力フィールドをバックエンドで検証する必要があります。だから私は1つのサービス呼び出しを書いて、出力に基づいて私は入力フィールドにクラスを追加する必要があります。だからOKであれば緑色になります。Angular2 Clickメソッドは常にfalse値を返します

私はバックエンドの検証と同じようにすべて同じメソッドを使用したいと思います。だから私はクリック機能からブール値を返そうとしているが、常にfalseを返す。ここに私のコードは次のとおりです。 -

<div class="row"><div class="col-md-2 col-md-offset-2 nopadding"><div class="form-group pull-right"><label>Query1:</label></div></div><div class="col-md-4 col-md-offset-0"><div class="form-group input-group"><input type="text" [ngClass]="{red: !(query1ok),green: (query1ok)}" class="form-control" name="query1" id="query1" [(ngModel)]="sampledetails.rules[0].query1"><span class="input-group-btn"><a href="javascript:void(0)" class="btn btn-default" alt="validate query" (click)="[query1ok]:validateQuery(query1ok,sampledetails.rules[0].query1)" type="button"><i class="fa fa-play"></i></a></span></div></div></div> <div class="row"><div class="col-md-2 col-md-offset-2 nopadding"><div class="form-group pull-right"><label>Query2:</label></div></div><div class="col-md-4 col-md-offset-0"><div class="form-group input-group"><input type="text" [ngClass]="{red: !(query2ok),green: (query2ok)}" class="form-control" name="query2" id="query2" [(ngModel)]="sampledetails.rules[0].query2"><span class="input-group-btn"><a href="javascript:void(0)" class="btn btn-default" alt="validate query" (click)="validateQuery(query2ok,samplerdetails.rules[0].query2)" type="button"><i class="fa fa-play"></i></a></span></div></div></div><div class="row"><div class="col-md-2 col-md-offset-2 nopadding"><div class="form-group pull-right"><label>Query3:</label></div></div><div class="col-md-4 col-md-offset-0"><div class="form-group input-group"><input type="text" [ngClass]="{red: !(query3ok),green: (query3ok)}" class="form-control" name="query3" id="query3" [(ngModel)]="samplerdetails.rules[0].query3"><span class="input-group-btn"><a href="javascript:void(0)" class="btn btn-default" alt="validate query" (click)="validateQuery(query3ok,ssampledetails.rules[0].query3)" type="button"><i class="fa fa-play"></i></a></span></div></div></div><div class="row"><div class="col-md-2 col-md-offset-2 nopadding"><div class="form-group pull-right"><label>Query4:</label></div></div><div class="col-md-4 col-md-offset-0"><div class="form-group input-group"><input type="text" [ngClass]="{red: !(query4ok),green: (query4ok)}" class="form-control" name="query4" id="query4" [(ngModel)]="samplerdetails.rules[0].query4"><span class="input-group-btn"><a href="javascript:void(0)" class="btn btn-default" alt="validate query" (click)="validateQuery(query4ok,sampledetails.rules[0].query4)" type="button"><i class="fa fa-play"></i></a></span></div></div></div> 


validateQuery(querystatus, query){ 
    this._validatorService.validateQuery(query).subscribe(
      (data) => { 
       return false; 
      }, 
      (err) =>{ 
      return true; 
      } 
     ); 
    } 

それではどのように、その可能性はangular2で、はいている場合、クリック機能からブール値を返すためにかどうかを知りたいですか? HTMLで

答えて

1

あなたが登録したデータを返すべきであるとして、以下の

validateQuery(querystatus, query){ 
    this._validatorService.validateQuery(query).subscribe(
      (data) => { 
       return data;////////////////////////// 
      }, 
      (err) =>{ 
      return true; 
      } 
     ); 
    } 

アップデート1

validateQuery(querystatus, query){ 
    this._validatorService.validateQuery(query).subscribe(
      (data) => { 
       this.queryok= false; 
      }, 
      (err) =>{ 
       this.queryok= true; 
      } 
     ); 
    } 

あなたの関数呼び出しは、私はこの方法を試してみました

(click)="validateQuery(query1ok,sampledetails.rules[0].query1)" 
+0

ようになります。同じエラー。私はfalseを返す場合は、そのerrその他のデータがブール値を返す。私のデータは真実であるが、それでも私はクリック方法では虚偽になっている。ちょうど私が戻り値を正しく割り当てているかどうかチェックしたいのですか?ここに私のコードです: - ** '(クリック)= "query1ok = validateQuery(query1ok、sampledetails.rules [0] .query1)" ** – NJin

+0

はチームビューアで利用できますか? 'query1ok'それはどういう意味ですか? – Aravind

+0

チームビューアに申し訳ありません。 query1okは** query1ok:boolean = true; **のようなクラスで宣言した変数で、ngClassの条件に同じ変数を使用しています – NJin

関連する問題