2016-04-11 15 views
0

親愛なるstackoverflowers。ReactJSビューでのバックボーンのモデルisValidメソッド

興味深い技術的問題に直面しました。

ウェブアプリケーションでは、ReactJS with Backboneを使用しています。これは駄目だと言う人もいますが、このようなチームは成功しています。

どのような質問でも私のビューでバックボーンのisValid()関数を使用する方法?今のよう

saveBtnIsEnabled: function() { 
    //@TODO. Here is a problem.... 
    //... I wana my button be enabled only if my model is valid. 
    return this.props.model.isValid();  
}, 

私はモデルが変更されたため、私の

  • 機能をレンダリングするためにすることはisValid()ことを確認し、変更モデル
  • を呼び出しますが、呼び出しは機能
  • 機能をレンダリングレンダリングに反応することはできませんモデルが変更されたため、
  • モデルをチェックして変更するisValid()を呼び出します。リアクション呼び出しレンダリング機能

私は再帰を持っています。

今のところ私のモデルにはすべての検証ルールがあります。

ここでは、exampleが動作しています。

答えて

0

isValid()メソッドを呼び出すとモデルが変更され(モデルのvalidationErrorフィールドを更新します)、仮想DOM検出が変更され、コンポーネントを再描画します。

isValid()を呼び出す代わりに、モデルのvalidate()関数を直接呼び出すように変更します。だから、私の見解ではなく、

saveBtnIsEnabled: function() { 
    return this.props.model.isValid(); 
}, 

使用ここ

saveBtnIsEnabled: function() { 
    var model = this.props.model; 
    var attributes = model.attributes; 
    var validationResult = model.validate(attributes); 
    var isValid = typeof validationResult === 'undefined'; 
    return isValid; 
}, 

exampleに取り組んでいます。

関連する問題