Backbone: скрыть всплывающее окно диалога, если ввод не изменился - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь показать всплывающее диалоговое окно, если поле имеет значение 0. Я могу это сделать, но на странице рендеринга, если вход имеет значение 0 и не изменяется, я снова вижу этот диалог .

Диалог не должен отображаться, если при рендеринге значение 0 равно

<input id="input-value" type="text" class="text-controll"/> //this model return values from attributeName from the backend

Модель при сохранении:

save() {
 if(this.model.get('attributeName') === 0) {
  dialog.confirm(
   "Are you sure you want to save the data"
  )
 }
}

1 Ответ

0 голосов
/ 14 февраля 2020

Я думаю, что Backbone имеет код для проверки этого встроенного:

save() {
 var nameChanged = !!this.model.changedAttributes()['attributeName'];

 if(nameChanged && this.model.get('attributeName') === 0) {
  dialog.confirm(
   "Are you sure you want to save the data"
  )
 }
}

Это может не сработать, если вы инициализируете вашу модель каким-то нестандартным способом, например, создаете пустую и затем «меняете» значения на ваш дб. Но для стандартного использования это должно работать.

Документация здесь: https://backbonejs.org/#Model -changedAttributes

...