2012-01-20 10 views
4

私はレンダリングのための純粋なJSのディレクティブを使用します。Pure JSでは「条件付きレンダリング」が可能ですか?

http://beebole.com/pure/documentation/rendering-with-directives/

をテンプレート内のノードが欠落している場合は、ピュアJSのデフォルトの動作が原因にクラッシュすることがある:「

ノードをXXX "がテンプレートに見つかりませんでした

このデフォルトの動作は、テンプレートに矛盾がないため、完全に理解できます。しかし同じケースでは、失敗した割り当てをスキップし、残りの割り当てを進めることもできます(おそらくエラーをログに記録する)。エラー/誤字のせいでレンダリング全体が失敗するのを避けるためです。

Pure JSでこの動作を得る方法はありますか? Pure JSに「存在する場合」だけ要素をレンダリングするように指示できますか?

答えて

3

残念ながらPure JSリビジョン:2.79)の現在の安定版は、「それはを存在する場合」要素をレンダリングすることはできませんか?

は、次のピュアコードスニペットは、エラーがスローされる方法を示しています。あなたが見ることができるように

if(selector === '.' || (!selector && attr)){ 
    target[0] = dom; 
}else{ 
    target = plugins.find(dom, selector); 
} 
if(!target || target.length === 0){ 
    return error('The node "' + sel + '" was not found in the template:\n' + outerHTML(dom).replace(/\t/g,' ')); 
} 

target場合は発見されなかった(たとえば、jQueryのようライブラリのいずれかによって、道場など)その後、上記のエラーがスローされます。次のように私は状況のようなものに使用


回避策は次のとおりです。

  • ピュアは
  • いくつかの要素は、(例えばエラーメッセージなどを表示し、エラーをスローしないように、私はすべての可能な要素でテンプレートを使用します。)はCSSクラスを使って隠されています
  • 私は、入力データに応じて要素を隠す/表示するために、指示付きPure関数とJavaScript関数を使用してCSSクラスを変更します。