Угловой не проводка в URI

0

Мой угловой код не отправляется в api, когда я вводим данные в форму, даже несмотря на то, что мой api доказал свою работоспособность и принимает завитущие запросы CRUD. Функция register вызывается из моего частичного, тогда контроллер регистра использует функцию обслуживания пользователя и регистра, чтобы отправить форму модели в api

пользовательский сервис

(function () {
    'use strict';

    angular
        .module('app')
        .factory('UserService', UserService);

    UserService.$inject = ['$http'];
    function UserService($http) {
        var service = {};

        service.GetAll = GetAll;
        service.GetById = GetById;
        service.GetByUsername = GetByUsername;
        service.Create = Create;
        service.Update = Update;
        service.Delete = Delete;

        return service;

        function GetAll() {
            return $http.get('https://me.com/api/users/').then(handleSuccess, handleError('Error getting all users'));
        }

        function GetById(id) {
            return $http.get('https://me.com/api/users/' + id).then(handleSuccess, handleError('Error getting user by id'));
        }
...

    function Create(user) {
        return $http.post('https://me.com/api/users', user).then(handleSuccess, handleError('Error creating user'));
    }

.....

Зарегистрировать Partial

<div ng-controller="RegisterController as vm">
<div class="col-md-6 col-md-offset-3">
    <h2>Register</h2>
    <form name="form" ng-submit="vm.register()" role="form">
        <div class="form-group" ng-class="{ 'has-error': form.fname.$dirty && form.fname.$error.required }">
            <label for="username">First name</label>
            <input type="text" name="fname" id="fname" class="form-control" ng-model="vm.user.fname" required />
            <span ng-show="form.fname.$dirty && form.fname.$error.required" class="help-block">First name is required</span>
        </div>
        <div class="form-group" ng-class="{ 'has-error': form.lname.$dirty && form.lname.$error.required }">
            <label for="username">Last name</label>
            <input type="text" name="lname" id="Text1" class="form-control" ng-model="vm.user.lname" required />
            <span ng-show="form.lname.$dirty && form.lname.$error.required" class="help-block">Last name is required</span>
        </div>
        <div class="form-group" ng-class="{ 'has-error': form.username.$dirty && form.username.$error.required }">
            <label for="username">Username</label>
            <input type="text" name="username" id="username" class="form-control" ng-model="vm.user.username" required />
            <span ng-show="form.username.$dirty && form.username.$error.required" class="help-block">Username is required</span>
        </div>
        <div class="form-group" ng-class="{ 'has-error': form.hashword.$dirty && form.hashword.$error.required }">
            <label for="hashword">Password</label>
            <input type="hashword" name="hashword" id="hashword" class="form-control" ng-model="vm.user.hashword" required />
            <span ng-show="form.hashword.$dirty && form.hashword.$error.required" class="help-block">Password is required</span>
        </div>
        <div class="form-actions">
            <button type="submit" ng-disabled="form.$invalid || vm.dataLoading" class="btn btn-primary">Register</button>
            <img ng-if="vm.dataLoading" src="data:image/gif;base64,..." />
            <a href="#/login" class="btn btn-link">Cancel</a>
        </div>
    </form>
</div>

</div>

Регистрировать контроллер/функцию

(function () {
    'use strict';

    angular
        .module('app')
        .controller('RegisterController', RegisterController);

    RegisterController.$inject = ['UserService', '$location', '$rootScope', 'FlashService'];
    function RegisterController(UserService, $location, $rootScope, FlashService) {
        var vm = this;

        vm.register = register;

        function register() {
            vm.dataLoading = true;
            UserService.Create(vm.user)
                .then(function (response) {
                    if (response.success) {
                        FlashService.Success('Registration successful', true);
                        $location.path('/login');
                    } else {
                        FlashService.Error(response.message);
                        vm.dataLoading = false;
                    }
                });
        return false;
        }
    }

})();
  • 1
    Пожалуйста, покажите ваш метод UserService.Create . Откуда вы знаете, что он не делает POST-запрос? Что говорит вам консоль?
  • 0
    консоль пуста, когда я делаю это еще, когда я завиваю ее, она работает, и API обновляется
Показать ещё 6 комментариев
Теги:
rest

1 ответ

1
Лучший ответ

Как вы назначили свой контроллер виду? Вы использовали controller as синтаксиса? Например: <div ng-controller="RegisterController as vm">your view here </div> Вы назначаете функцию register в vm но vm является только локальной переменной в функции контроллера, поэтому угловой не может использовать ее функций. Присвоение this локальной переменной vm является хорошей практикой, лучше, чем использование $ scope во всем мире, но это все еще только локальная переменная внутри области функций контроллера. Если вы назначите контроллер для просмотра и переименования контроллера (<div ng-controller="RegisterController as vm">), он будет работать.

  • 0
    Хорошо, я добавил это в. Это все еще не отправляет к api по некоторой причине. Что вы подразумеваете под назначением моего контроллера для просмотра? Интересно, что мне не хватает
  • 0
    Можете ли вы подтвердить, что можете получить доступ к функции регистрации сейчас? Вы можете назначить контроллер двумя способами через $routeProvider или через ng-controller , это означает, что вы можете выбрать, какая область действия контроллера должна использоваться в конкретном представлении. Не могли бы вы поделиться с нами всем кодом формы?
Показать ещё 2 комментария

Ещё вопросы

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