2016-03-31 34 views
0

Api'm çalışmasının kanıtlanmış olmasına rağmen CRUD isteklerini kıstırıyor olsa bile, veri girdiğimde açısal kod api'ye gönderilmiyor. kayıt fonksiyonu benim kısmi ardından Kayıt denetleyicisinden denilen kullanıcı hizmetini kullanan ve APIKöşeli URI'ye İletim Yapılmıyor

kullanıcı hizmeti

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

..... 

Kayıt Kısmi

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

Kayıt için formu modeli göndermek için işlev kayıt edilir denetleyici/işlev

(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

Lütfen "UserService.Create" yönteminizi gösterin. Bir POST isteğinin yapılmadığını nereden biliyorsunuz? Konsol size ne anlatıyor? – iulian

+0

konsolu henüz bitirdiğimde yapıyorum ve çalışır durumda ve api güncellendi –

+0

Kayıt işlevinin sonunda yanlış mı dönüyorsunuz? Eğer o zaman senin sorunun budur, aslında form – Tomer

cevap

1

denetleyiciyi görmek için? controller as sözdizimini kullandınız mı? Örneğin:<div ng-controller="RegisterController as vm">your view here </div> Kayıt işlevini vm'a atayacaksınız, ancak vm denetleyici işlevinde sadece yerel bir değişkendir; böylece açısal işlevlerini işlevlerini göremiyor. Yerel vm değişkenine this atanması iyi bir uygulamadır, her yerde $ kapsamını kullanmaktan iyidir, ancak hala denetleyici işlevinin kapsamı içindeki yerel bir değişkendir. Denetleyicinizi denetleyicinizi görüntülemek ve yeniden adlandırmak için atarsanız (<div ng-controller="RegisterController as vm">), o zaman işe yarayacaktır.

+0

Ok ekledim. Bazı nedenlerle hala api göndermiyor. Denetleyicimin görmesi için ne demeyi kastediyorsun? eksik –

+0

Şimdi kayıt fonksiyonuna ulaşabileceğinizi onaylayabilir misiniz? Bir kontrolöre iki yoldan "$ routeProvider" veya "ng-controller" üzerinden bir atayabilirsiniz, bu, hangi silindir işlevinin kapsamı belirli bir görünümde kullanılmalıdır. Tüm form kodunuzu bizimle paylaşabilir misiniz, lütfen? –

+0

teşekkürler ve evet kayıt fonksiyonuna ulaşabilirim ... Sadece –

İlgili konular