Angularjs 角度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} 在许多情况下,插值是一种方便的属性绑定

我从多个博客和stackoverflow中的一些问题中了解到,由于$digest进程的工作方式,Angular 1 ng bind比{{}插值具有更好的性能

Angular 2改变了它进行数据绑定的方式,我想知道是否有关于这个主题的测试。特别是如果

<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来禁用按钮。点击我