2016-10-03 7 views
0

角型1 ng-bindは、$ digestプロセスの仕組みのために、{{}}補間よりもパフォーマンスが優れています。角2補間対プロパティ結合

アングル2ではデータバインディングの方法が変更されており、対象に関するテストがあるかどうかを知りたいと思っています。この

<h1 [innerText]="obj.name"></h1> 

はまだこの

<h1> {{ obj.name }} </h1> 
+1

'innerText'は簡単な理由から[標準化されていません](https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText)には適していません。そして、私は 'textContent'をバインドすることでUniversalに問題が生じると思います。 – estus

答えて

0

getTitle()メソッドを例として使用します。 checkBindingはデバッグモードチェックであり、無視することができます。

属性バインディング呼び出しsanitizeel.setAttribute

var currVal_0 = self.context.getTitle(); 
    if (jit_checkBinding34(throwOnChange,self._expr_0,currVal_0)) { 
    self.renderer.setElementAttribute(self._el_0,'innerHTML',((self.viewUtils.sanitizer.sanitize(jit_SecurityContext36.HTML,currVal_0) == null)? null: self.viewUtils.sanitizer.sanitize(jit_SecurityContext36.HTML,currVal_0).toString())); 
    self._expr_0 = currVal_0; 
    } 

補間、el.textContent = value;呼び出します。唯一の違いはsanitizeを使用している

var currVal_0 = jit_interpolate36(1,'',self.context.getTitle(),''); 
    if (jit_checkBinding34(throwOnChange,self._expr_0,currVal_0)) { 
    self.renderer.setText(self._text_1,currVal_0); 
    self._expr_0 = currVal_0; 
    } 

、あなたはそれがないです見るためにソースコードをhtml_sanitizer.ts確認することができますいくつかの複雑なもの。

0

よりも優れている場合には具体的に補間は、多くの場合、結合性のための便利な代替手段です。

実際、角度2は、ビューをレンダリングする前に、それらの補間を対応するプロパティバインディングに変換します。

角度2では、あるフォームを他のフォームよりも好む技術的理由はないと思います。あなたは、仕事に最も自然な感じのフォームを選ぶべきです。