Создание потока UNDO для транзакционных полей

Я думал о приложениях для Goangular. В необходимости немедленного обновления хранилища / базы данных, такого как приложение для чата, приложение для обмена акциями и т. Д., Я вижу, как прямоугольная форма может быть чрезвычайно полезной в смысле методологий SignalR. Но можно ли применить его к традиционной форме с десятью полями и кнопкой сохранения? Все, что я мог придумать, это традиционная форма с десятью полями на ней - без кнопки сохранения. Если все десять полей находятся в области видимости контроллера, тогда не будет необходимости в кнопке сохранения. Каждое изменение поля будет отмечаться в хранилище goinstant. Сказав это, как одна UNDO позволяет говорить о каких-либо изменениях в этих десяти измененных полях? Контроль +Z десять раз? Не такой крепкий. Есть идеи по кнопке ОТМЕНИТЬ все изменения для такой формы? (отчаянно пытаясь расширить связи транзакций базы данных в реальном времени)

1 ответ

Решение

Сначала я попытаюсь ответить на то, что я считаю духом вашего вопроса.

В большинстве случаев при использовании GoAngular мы сосредоточены на синхронизации состояния приложения. Ака: Активные клиенты обмениваются данными сессий. Неизбежно мы дрейфуем на территорию долговременного упорства. На этом этапе строгая проверка / санитарная обработка становятся необходимостью, которую мы не можем обсудить без некоторого контекста.

Допустим, наш пользователь заполняет свой профиль. Этот профиль будет использоваться для создания пользовательской модели, которую мы будем сохранять. Теперь, когда у нас есть контекст, становится ясно, что нам не следует сохранять частично завершенную форму, потому что она не будет представлять действительную модель пользователя. Мы сохраняем форму, как только она заполнена и действительна.

Реализовать это так же просто, как создать собственный метод $scope.onSubmit и проверить ввод формы перед вызовом $save на нашем новом $scope.user модель.

Отмена будет также легко осуществима, если вы используете $scope.users.$add, ключ будет сгенерирован и возвращен, вы можете использовать этот ключ для удаления нового пользователя. Если вы хотите откатить изменения, вам нужно будет внедрить какую-то систему для версий и вернуться к предыдущей версии этого пользователя.

Надеюсь, я где-то ответил на ваш вопрос здесь:)

Другие вопросы по тегам