Angularjs 在Angular js中,如何创建没有提交按钮的表单
我试图创建一个没有提交按钮的智能提交。当其中一个表单元素失去焦点时,表单将自动提交 下面是一个例子: 以下是指令代码:Angularjs 在Angular js中,如何创建没有提交按钮的表单,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我试图创建一个没有提交按钮的智能提交。当其中一个表单元素失去焦点时,表单将自动提交 下面是一个例子: 以下是指令代码: angular.module('plunker').directive("ngSmartSubmit", [ function() { return { restrict: "A", require: "ngModel", scope: { form: "=ngSmartSubmit", data: "=ng
angular.module('plunker').directive("ngSmartSubmit", [
function() {
return {
restrict: "A",
require: "ngModel",
scope: {
form: "=ngSmartSubmit",
data: "=ngSmartModel"
},
link: function(scope, element, attrs, ctrl) {
var action;
action = function(parentScope) {
if (ctrl.$dirty) {
scope.form.$setPristine();
if (ctrl.$valid) {
return parentScope.update(scope.data, function(succeed) {
ctrl.$updated = succeed;
});
} else {
return parentScope.$emit('ngSmartSubmit::controlInvalid');
}
}
};
ctrl.$updated = false;
scope.$parent.$on('ngSmartSubmit::controlModified', function() {
return scope.$apply(function() {
ctrl.$updated = false;
});
});
return element.bind("focus", function(evt) {
return scope.$apply(function() {
ctrl.$updated = false;
});
}).bind("blur", function(evt) {
return scope.$apply(function() {
return action(scope.$parent);
});
}).bind("keydown keypress", function(evt) {
if (evt.which === ENTER_KEY) {
scope.$apply(function() {
return action(scope.$parent);
});
return event.preventDefault();
} else {
return scope.$parent.$emit('ngSmartSubmit::controlModified');
}
});
}
};
}
]);
请提供建议,我如何改进ng smart submit指令
提前感谢。您的代码看起来不错!plnkr不能代替在问题中添加相关代码。这样做会使问题与稍后讨论的人无关。@Liam,我已经插入了代码。请再好一点,谢谢。另一方面。这个问题似乎更适合我