У меня нет ошибок в моей консоли, но мой ng-submit просто не запускается. Я отлаживаю, помещая что-то в свой контроллер, он запускал, означает, что проблема не в том, что мой контроллер не загружается. Ниже мой исходный код
(function() {
angular.module('MyApp')
.controller('SignupCtrl', SignupCtrl);
SignupCtrl.$inject = ['$scope', '$rootScope', '$location', '$window', '$auth'];
function SignupCtrl($scope, $rootScope, $location, $window, $auth) {
console.log('hello') // triggered
var ctrl = this;
ctrl.signup = signup;
function signup() {
console.log('trigger') // nope??
}
}
});
Посмотреть
<form ng-submit="signup()">
<div class="form-group">
<label for="name">First Name</label>
<input required type="text" name="fname" id="fname" placeholder="First Name" class="form-control" ng-model="user.fname" autofocus>
</div>
<button type="submit" class="btn btn-success">Sign up</button>
</form>
попробуй это:
(function () {
/* jshint validthis: true */
'use strict';
angular
.module('MyApp')
.controller('Signup', Signup);
Signup.$inject = ['$scope', '$rootScope', '$location', '$window', '$auth'];
function Signup($scope, $rootScope, $location, $window, $auth) {
var vm = this;
vm.signup = signup;
vm.user = ...;
function signup() {
console.log('trigger');
}
}
})();
<section id="signup-view" data-ng-controller="Signup as vm">
<form>
<div class="form-group">
<label for="name">First Name</label>
<input required type="text" name="fname" id="fname" placeholder="First Name" class="form-control" ng-model="vm.user.fname" autofocus>
</div>
<button class="btn btn-success" data-ng-click="vm.signup()">Sign up</button>
</form>
</section>
В качестве побочного примечания вы пропустили два ' ; 'в вашем коде. Я предлагаю вам регулярно тестировать свой JS-код с помощью инструмента JSHint.
SignupCtrl as vm
или что-то в этом роде?