Если вы не используете. (Dot) в своих моделях 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"......

Должен ли я сделать эту часть модели "item"? или создать другой объект js, чтобы я мог удерживать это свойство с помощью точки?

Кто-нибудь знает, насколько это приемлемо или я должен делать все (даже эти простые свойства) с .dot??

Спасибо

Ответ 1

"Всегда должна быть точка в вашей модели" относится к ngModel. Эта директива делает двустороннюю привязку. Если вы выполняете двустороннюю привязку к примитиву (например, булеву в вашем случае), установщик будет устанавливать его в текущей области, а не в области, на которой он определен, что может вызвать головную боль, когда у вас есть большой пользовательский интерфейс, интерфейс с большим количеством дочерних областей. Он не относится к другим директивам, таким как ngDisable. Подробнее о данной проблеме см. это объяснение.

Пример сценария: родительская область с $scope.foo = "bar" и дочерняя область с <input type="text" data-ng-model="foo">. Сначала он отображает bar, но как только пользователь изменит значение, в дочерней области будет создан foo, и привязка будет читать и записывать это значение. Родительский foo останется bar. Надеюсь, что это будет хорошо.

Итак, для целей ngModel вам может понадобиться создать объект для работы с такими проблемами связывания, но для любой другой директивы вы должны иметь регулярную логическую группировку.