我记得在AngularJS的视频中看到这句名言,应该总是使用a。 (点)你的模特。
好吧,我想按照这个说我有
var item = {}
item.title = "Easy Access to support";
item.available = true;
item.price = 31.67;
所以我认为这很有效。
{{ item.title }}
{{ item.available }}
我正在使用一个点,所以我觉得这很好。
但我有一些属性,我不认为是模型的一部分,但也许我错了。例如,我有一个属性,我用来启用或禁用使用ng-disable的按钮,我已使用点格式输入。它的基本输入就是这样
$scope.disableButton = true;
我就像
一样使用它 ng-disable="disableButton"......
我应该将模型的这一部分作为“项目”吗?或者创建另一个js对象,这样我就可以使用点来保存这个属性了吗?
有人知道这是否可以接受,或者我应该用.dot做所有事情(即使是这些简单的属性)
由于
答案 0 :(得分:46)
“模型中应该总是有一个点”是指ngModel
。该指令执行双向绑定。如果你双向绑定到一个原语(例如你的情况下是一个布尔值),那么setter会将它设置在当前作用域而不是定义它的作用域上,当你有一个大用户时,这会导致头痛 - 与很多子范围的接口。 它不引用其他指令,例如ngDisable
。有关此特定问题的详细信息,请参阅this explanation。
示例场景:具有$scope.foo = "bar"
的父作用域和具有<input type="text" data-ng-model="foo">
的子作用域。它最初会显示bar
,但是一旦用户更改了值,就会在子范围上创建foo
,绑定将读取和写入该值。父级foo
将保留bar
。希望能够很好地总结它。
因此,对于ngModel
目的,您可能必须创建一个对象来解决此类绑定问题,但对于任何其他指令,您应该进行常规的逻辑分组。