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

【字号: 日期:2024-04-07浏览:42作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决如果您没有在AngularJS模型中使用(点),那么您做错了吗??

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

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

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

解决方法

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

谢谢

相关文章: