一尘不染

如果您没有在AngularJS模型中使用。(点),那么您做错了吗?

angularjs

我记得在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来做所有事情(甚至是这些简单的属性)?

谢谢


阅读 247

收藏
2020-07-04

共1个答案

一尘不染

“模型中应始终有一个点”是指ngModel。该指令执行双向绑定。如果您双向绑定到基元(例如您的情况下为布尔值),则setter会将其设置在当前作用域上,而不是在其定义的作用域上进行设置,当您拥有大量用户时,与许多子范围的接口。
它没有引用其他指令,例如ngDisable有关特定问题的更多详细信息,请参见此说明

示例场景:带有的父范围$scope.foo = "bar"和带有的子范围<input type="text" data-ng- model="foo">。它将bar最初显示,但是一旦用户更改了值,foo将在 子作用域
上创建一个,绑定将读取和写入该值。父母的foo仍将保留bar。希望总结得好。

因此,ngModel出于目的,您可能必须创建一个对象来解决此类绑定问题,但是对于任何其他指令,您应该进行常规的逻辑分组。

2020-07-04