在屏蔽内容内部修改角度范围



Angular:有人能解释为什么指令中的transcluded内容只能更新作用域上的对象,而不能直接更新作用域中的变量吗。只是因为对象和函数是javascript中的ref类型吗?为什么绑定是单向工作的。。。为什么在transcluded内容内部更新后绑定中断(参见plunker示例)

- Plunker样本-作用域上的变量与作用域上的对象

工作- Plunker样本-作用域上的变量

转码内容还可以更新父级的作用域属性

转码内容与任何其他内容一样,因此,如果遵循dot.rule,则可以更新所需的父作用域属性。始终遵循dot.rule并重构您的逻辑,以确保在angular way中完成所有工作。

指令范围类型

angular 2.0版本之前的指令接受几种类型的作用域,作用域可以是true,它创建了一个新的作用域并继承了父级的属性;false,它不创建新的作用域,但仍然继承父级的属性;或者{},它被称为一个隔离的作用域,这会创建一个没有属性的新作用域,它只保留您声明的属性。

单向与双向数据绑定

Angular同时使用单向和双向数据绑定。例如,双向数据绑定发生在使用ng-model指令时,无论何时更新模型,视图都会反映这些更改,反之亦然。另一方面,当您使用插值{{some.property}} 时,会发生单向数据绑定


如果您正在使用dot.rule,则双向数据绑定不应中断。这就是原型继承的工作原理。

看看这支笔来说明这个答案中所说的一切。

最新更新