Как сделать angular -изменимое состояние редактирования всегда включено

Я использую angular -xeditable для редактирования элементов в форме. Я хотел бы иметь все элементы в "редактируемом" режиме в любое время, например. никакая кнопка "изменить" не должна быть нажата до того, как пользователь начнет редактирование.

Я пытаюсь использовать $show() в моем контроллере, чтобы включить элементы в форме, однако кажется, что элементы снова попадают в состояние просмотра, например, при использовании "onftersave" при попытке сохранить значения и т.д..

Как мне сделать, чтобы всегда быть в режиме редактирования, когда пользователю никогда не нужно включать редактирование, чтобы начать редактирование значений?

Ответ 1

Возможно, добавьте shown=true в свой html:

<form editable-form shown="true">

Ответ 2

У меня была такая же проблема. Даже когда вы пытаетесь снова показать форму() в конце моей функции onftersave, она все равно не сработает. Я подозреваю, что видимость скрывается после того, как функция onftersave работает, но на самом деле я не проверял это. Вот как я обошел это:

$scope.$watch('yourFormName.$visible', function() {
    $scope.yourFormName.$show();
});

Теперь, когда видимость формы изменяется на скрытую, она будет просто показывать ее снова, независимо от того, когда она изменилась.

Ответ 3

Если ваша форма уже открыта, и вы просто хотите ее открыть после отправки, вы можете сделать это:

<form editable-form name="MyForm" onbeforesave="saveMyData()" onaftersave="keepFormOpen()">

и функция keepFormOpen() будет выглядеть примерно так:

$scope.keepFormOpen = function() {
    return "fake error message";
}

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

Ответ 4

Чтобы действительно открыть форму, мы можем сделать следующее:

<form editable-form name="MyForm" onbeforesave="saveMyData()" onhide="MyForm.$show()">