我记得在 AngularJS 的视频中看到这句名言说应该始终使用 . (点)在您的模型中。
好吧,我正在尝试遵循这个说我有
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 做所有事情(甚至是这些简单的属性)?
谢谢
请您参考如下方法:
“您的模型中应该总是有一个点”是指ngModel
.该指令执行双向绑定(bind)。如果你双向绑定(bind)到一个原语(例如你的情况下的 bool 值),setter 会将它设置在当前范围而不是定义它的范围上,当你有一个大用户时,这可能会导致头痛 -与许多子范围的接口(interface)。 它没有引用其他指令,例如 ngDisable
. 见 this explanation有关此特定问题的更多详细信息。
示例场景:具有 $scope.foo = "bar"
的父范围,以及一个带有 <input type="text" data-ng-model="foo">
的子作用域.它将显示 bar
最初,但一旦用户更改值,foo
将在 上创建子范围 并且绑定(bind)将读取和写入该值。家长的foo
将保留 bar
.希望总结得好。
所以对于 ngModel
目的,您可能必须创建一个对象来解决此类绑定(bind)问题,但对于任何其他指令,您应该具有常规的逻辑分组。