не вызывать в angularjs

0

У меня нет ошибок в моей консоли, но мой 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>
  • 0
    У вас есть псевдоним для вашего контроллера? как SignupCtrl as vm или что-то в этом роде?
  • 0
    @Mikki Микки, ты имеешь в виду мой маршрут? нет
Показать ещё 8 комментариев
Теги:

1 ответ

1

попробуй это:

signup.js

(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');
        }
    }
})();

signup.html

<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.

  • 0
    Что делать, если я не хочу использовать контроллер в качестве?
  • 0
    @MariaJane, если вы не используете контроллер, вы не сможете получить доступ к элементам dom с помощью angularJS.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню