我使用angular-xeditable来编辑表单中的元素。我想把所有元素都放在" editable"模式在任何时候,例如不#"编辑"在用户开始编辑之前需要按下按钮。
我一直试图在我的控制器中使用$ show()来启用表单中的元素,但是看起来元素再次进入查看状态,例如当使用" onaftersave"当试图保存值等时。
如何始终处于编辑模式,用户永远不需要启用编辑才能开始编辑值?
答案 0 :(得分:7)
可能尝试在html中添加shown=true
:
<form editable-form shown="true">
答案 1 :(得分:5)
我有同样的问题。即使在我的onaftersave函数结束时再次尝试$ show()表单时,它仍然无效。我怀疑在onaftersave函数运行后隐藏了可见性,但我实际上没有检查是否是这种情况。以下是我如何解决这个问题:
$scope.$watch('yourFormName.$visible', function() {
$scope.yourFormName.$show();
});
现在,只要表单可见性更改为隐藏,它就会再次显示它,无论它何时更改。
答案 2 :(得分:1)
如果您的表单已经打开,并且您只想在提交后将其保持打开状态,则可以执行以下操作:
<form editable-form name="MyForm" onbeforesave="saveMyData()" onaftersave="keepFormOpen()">
并且函数keepFormOpen()看起来像这样:
$scope.keepFormOpen = function() {
return "fake error message";
}
这样做本质上是在您保存数据后给表单提供了错误的错误消息。这个假的错误消息将中断表单关闭过程,但由于它是在您保存数据后调用的,因此不会影响之前的提交。
答案 3 :(得分:0)
要真正保持打开表单,我们可以执行以下操作:
<form editable-form name="MyForm" onbeforesave="saveMyData()" onhide="MyForm.$show()">