我开始使用angularJS,并遇到表单验证器的问题。
那是我的代码:
<button class="btn btn-info" ng-click="addAction.test()">Click me! </button>
<form name="createForm" post="" method="post" validate-form="" novalidate="" >
<div class="col-md-6">
<label class="control-label">Title:</label>
<p class="input-group">
<input type="text"/>
<button class="btn btn-info" ng-click="addAction.test()">Click me! </button>
</p>
</div>
</form>
当我尝试单击按钮时,表单操作不起作用(只是在控制台中写一些东西)。 但是外形按钮效果很好!
我对这个问题的解决方案很少,但想知道为什么上面的代码不起作用。那里发生了什么。
可能的解决方案是:
<p class="input-group">
标记<p ...>
代码中保留按钮,但将其放在<input ..>
代码<form ...>
&#34;验证形式&#34;指令适用于&#34; parsley&#34;插件
有人可以帮忙吗?
(function () {
'use strict';
App.controller('AddEventController', AddEventController);
AddEventController.$inject = ['$scope', "$filter", "$rootScope", "ngDialog"];
function AddEventController($scope, $filter, $rootScope, ngDialog) {
...
this.test = function () {
console.log("Hi! Im here :)");
}
...
}
和路径片段:
.state('app.addEvent', {
controller: 'AddEventController',
resolve: helper.resolveFor('modernizr', 'icons', 'xeditable', 'parsley', 'ngDialog'),
controllerAs: "addAction"
})
validateForm指令看起来像这样:
App.directive('validateForm', function () {
return {
restrict: 'A',
controller: ["$scope", "$element", function ($scope, $element) {
var $elem = $($element);
if ($.fn.parsley) {
$elem.parsley();
}
}]
};
});