取自AngularJS 1 文件:
您还可以通过添加使绑定可选
?
:<?
要么<?attr
。
对于单向绑定,可选项与非可选项有何不同?
我似乎可以找出双向可选版本的差异(=
)和代表(&
)在我的小提琴上绑定: https://jsfiddle.net/glenn/ze2wo0s1/,但不是单向的。
顺便说一下,圣诞快乐!
取自AngularJS 1 文件:
您还可以通过添加使绑定可选
?
:<?
要么<?attr
。
对于单向绑定,可选项与非可选项有何不同?
我似乎可以找出双向可选版本的差异(=
)和代表(&
)在我的小提琴上绑定: https://jsfiddle.net/glenn/ze2wo0s1/,但不是单向的。
顺便说一下,圣诞快乐!
您可以在源代码中看到它的处理方式: https://github.com/angular/angular.js/blob/master/src/ng/compile.js#L3523。
对我来说,看起来如果你使用 <?
并使绑定可选,它提前打破而不设置手表。如果使用 <
并使其成为必需,它设置绑定 undefined
并设置一块手表。然而,它似乎只是在观看 undefined
,所以在实践中,除了一次打电话之外没有任何区别 recordChanges
。在省略所需绑定的情况下,所需的绑定将成为关键字 changes
传递给的对象 $onChanges
挂上第一个电话。但是,当您省略可选绑定时,它将不是一个键 changes
目的。
举个例子,看看这个 的jsfiddle。 requiredBinding
和 optionalBinding
都被省略,因此,初始化为 undefined
但是 requiredBinding
是关键 change
对象,而 optionalBinding
不是。
您可以在源代码中看到它的处理方式: https://github.com/angular/angular.js/blob/master/src/ng/compile.js#L3523。
对我来说,看起来如果你使用 <?
并使绑定可选,它提前打破而不设置手表。如果使用 <
并使其成为必需,它设置绑定 undefined
并设置一块手表。然而,它似乎只是在观看 undefined
,所以在实践中,除了一次打电话之外没有任何区别 recordChanges
。在省略所需绑定的情况下,所需的绑定将成为关键字 changes
传递给的对象 $onChanges
挂上第一个电话。但是,当您省略可选绑定时,它将不是一个键 changes
目的。
举个例子,看看这个 的jsfiddle。 requiredBinding
和 optionalBinding
都被省略,因此,初始化为 undefined
但是 requiredBinding
是关键 change
对象,而 optionalBinding
不是。
运用 <?
只有当该变量不存在时,控制器才能更改应该绑定的变量的值。
可选的绑定可以在控制器不存在时进行修改。如果将值传递给组件,则无法更改它。
无法修改非可选绑定。如果他们不在场,他们就是 undefined
它们根本无法修改。
例如,假设你有这个:
bindings: {
nameOptional: '<?',
nameRequired: '<'
}
在控制器中,你 不能 干脆做 $ctrl.nameRequired = 'something else'
并期望视图得到更新。但是,你 能够 做同样的事 nameOptional
有一个条件:只有 name-optional
未传递给组件。只有这时变量才是要改变的控制器。
为了更好地理解,您可以参考 这个小提琴。
请注意,为简化事物,我们使用的是一个按值传递的字符串。如果要传递对象,则可以始终在正常条件下修改对象的属性。