Javascript 如何实现多个按钮的角度验证
请检查我在plunker上的工作 这里我有两个按钮保存和修改。当我使用save(键入submit)按钮时,表单将在调用函数之前进行验证。现在,我想为modify(type button)按钮实现相同的验证。因此,当我单击它时,表单应该在调用modify函数之前进行验证 或者,如果您还有其他解决方案,我将继续实施,但请记住,我需要在同一表单上使用多个按钮进行验证Javascript 如何实现多个按钮的角度验证,javascript,angularjs,validation,angularjs-directive,Javascript,Angularjs,Validation,Angularjs Directive,请检查我在plunker上的工作 这里我有两个按钮保存和修改。当我使用save(键入submit)按钮时,表单将在调用函数之前进行验证。现在,我想为modify(type button)按钮实现相同的验证。因此,当我单击它时,表单应该在调用modify函数之前进行验证 或者,如果您还有其他解决方案,我将继续实施,但请记住,我需要在同一表单上使用多个按钮进行验证 提前感谢…您可以将scope.Modify()移动到指令中。我认为这样更具语义。然后返回false,这样表单就不会真正提交并运行您想要的
提前感谢…您可以将
scope.Modify()
移动到指令中。我认为这样更具语义。然后返回false,这样表单就不会真正提交并运行您想要的任何提交逻辑
你可以尝试这个模块,因为它可以自动完成你想要的,而不需要你编写任何复杂的代码-这是一个无耻的插件,正如我写的:-)你好,摩根,你给出的解决方案将只适用于修改按钮,如果我需要添加更多的按钮,我不能使用这个。此外,如果我们使用您的解决方案,请告诉我如何按照您的解决方案在控制器中实现逻辑部分。逻辑部分在指令中定义,我不需要。只需将其移动到控制器中即可。在本例中,您必须将
scope
重命名为$scope
,以利用DI。由于您从未为指令的返回对象提供范围
值,因此它默认为false
,因此您实际上是在指令和控制器之间共享一个范围。对于可重用组件,通常不建议使用此方法。当您为通过单击修改按钮调用的函数返回false
时,就会发生这种神奇的情况/
scope.submit = function (event) {
submitController.setAttempted();
if (!scope.$$phase) scope.$apply();
if (!formController.$valid) return false;
scope.$apply(function() {
fn(scope, {$event:event});
});
}
formElement.bind('submit', scope.submit);
scope.Modify = function () {
// process scope.session
scope.submit();
alert('Modified!');
return false;
};