Angularjs 角度2插值与属性绑定
我从多个博客和stackoverflow中的一些问题中了解到,由于$digest进程的工作方式,Angular 1 ng bind比{{}插值具有更好的性能 Angular 2改变了它进行数据绑定的方式,我想知道是否有关于这个主题的测试。特别是如果Angularjs 角度2插值与属性绑定,angularjs,angular,Angularjs,Angular,我从多个博客和stackoverflow中的一些问题中了解到,由于$digest进程的工作方式,Angular 1 ng bind比{{}插值具有更好的性能 Angular 2改变了它进行数据绑定的方式,我想知道是否有关于这个主题的测试。特别是如果 <h1 [innerText]="obj.name"></h1> 还是比这个好 <h1> {{ obj.name }} </h1> {{obj.name} 在许多情况下,插值是一种方便的属性绑定
<h1 [innerText]="obj.name"></h1>
还是比这个好
<h1> {{ obj.name }} </h1>
{{obj.name}
在许多情况下,插值是一种方便的属性绑定替代方法
实际上,Angular 2会在渲染视图之前将这些插值转换为相应的属性绑定
在Angular 2中,我认为没有技术上的理由选择一种形式而不是另一种形式。您应该选择对任务来说最自然的表单。在许多情况下,插值对于属性绑定是一种方便的选择 实际上,Angular 2会在渲染视图之前将这些插值转换为相应的属性绑定 在Angular 2中,我认为没有技术上的理由选择一种形式而不是另一种形式。您应该选择最适合任务的表单。使用
getTitle()
方法作为示例<代码>检查绑定是调试模式检查,可以忽略
属性绑定调用sanitize
和el.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代码>:
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;
}
唯一的区别是使用sanitize
,您可以检查html\u sanitizer.ts源代码以查看它是否执行了一些复杂的操作。使用getTitle()
方法作为示例<代码>检查绑定
是调试模式检查,可以忽略
属性绑定调用sanitize
和el.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代码>:
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;
}
唯一的区别是使用sanitize
,您可以检查html_sanitizer.ts源代码以查看它是否执行了一些复杂的操作。插值:它表示为{{}。它可以连接两个字符串,计算值和显示值
属性绑定:表示为[]。主要用于非串联字符串类变量。插值:表示为{{}。它可以连接两个字符串,计算值和显示值
属性绑定:它表示为[]。它主要用于非串联字符串类变量。innerText
由于简单的原因,再好不过了。我猜绑定textContent
会给您带来Universal方面的问题。innerText
再好不过了,原因很简单。我猜绑定textContent
会给您带来Universal方面的问题。您能提供一些例子吗插值是一种特殊的语法,可以转换为属性绑定。插值只是属性绑定的一种方便的替代方法。在某些情况下,例如当我们需要连接字符串时,我们必须使用插值而不是属性绑定,如下面的示例所示。将元素属性设置为非字符串数据值时,必须使用属性绑定。在下面的示例中,我们通过绑定到布尔属性isDisabled来禁用按钮。单击此处可以提供一些示例插值是一种特殊语法,可以将角度转换为属性绑定。插值只是属性绑定的一种方便的替代方法。在某些情况下,例如当我们需要连接字符串时,我们必须使用插值而不是属性绑定,如下面的示例所示。将元素属性设置为非字符串数据值时,必须使用属性绑定。在下面的示例中,我们通过绑定到布尔属性isDisabled来禁用按钮。点击我