2016-12-01 20 views
0

我在我的視圖(Html)中看不到任何數據。我從服務中獲取數據到控制器中。
請讓我知道我錯過了什麼。在角度路由後,數據沒有被填充到控制器視圖中

任何建議,我缺少的是什麼

控制器:

(function() { 
    'use strict'; 

    angular.module('app') .controller('UserController', UserController); 
    UserController.$inject = ['$scope', 'UserService', '$http', '$filter', '$rootScope','$location','$window']; 
    function UserController($scope, UserService, $http, $filter, $rootScope,$location,$window) { 


     $scope.editUser = function(userDetails){ 
      UserService.editUser(userDetails).then(editUserSuccess,editUserFailure); 
      $location.path('edit'); 
     } 


     var editUserFailure =function (error){ 
     }; 

     var editUserSuccess = function (response) { 
      var userRow = response.data; 
       $scope.edituserData=userRow;    
     }; 
    }; 
})(); 

這是我服務的一部分

(function() { 
    'use strict'; 

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

    UserService.$inject = ['$http', '$rootScope']; 
    function UserService($http, $rootScope) { 
     var service = {}; 
     service.editUser = editUser; 
     return service; 
     function editUser(editUserObj){ 
      console.log(editUserObj.userId); 
      return $http({ 
       method: 'POST', 
       url: 'editUser', 
       data: btoa(editUserObj.userId), 
       contentType: "application/json; charset=utf-8", 
      }); 
     } 
    } 
})(); 

我的路由從應用advanc

appname.config(function($routeProvider) { 
    $routeProvider 
     .when("/edit", { 
     templateUrl:"my.html", 
     controller : 'UserController' 
    }); 

}); 


my.html: 
-------- 

When i am trying to get data in my html template 

<div class="row"> 
        <div class="col-lg-6 col-sm-6 col-xs-6"> 
         <p class="text-right"><strong>Middle Name :</strong></p> 
        </div> 
        <div class="col-lg-6 col-sm-6 col-xs-6"> 
         <p class="text-left-user"> {{editUserData.screenName}}</p> 
        </div> 
        </div> 

謝謝e

+0

你可以添加你的模板html嗎?此外,您可以使用路由器提供商的解決方案並將其注入控制器。 –

+0

您錯過了.then(解析,拒絕)來處理數據。 – Matheno

+0

如果將'console.log(userRow)'放在'$ scope.edituserData = userRow'之前,會顯示什麼? –

回答

1

您的服務只需要返回成功的數據。現在它只是返回承諾。

(function() { 
    'use strict'; 

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

    UserService.$inject = ['$http', '$rootScope']; 
    function UserService($http, $rootScope) { 
     var service = {}; 
     service.editUser = editUser; 
     return service; 
     function editUser(editUserObj){ 
      console.log(editUserObj.userId); 
      return $http({ 
       method: 'POST', 
       url: 'editUser', 
       data: btoa(editUserObj.userId), 
       contentType: "application/json; charset=utf-8", 
      }).success(function(response){ 
       return response; 
      }); 
     } 
    } 
})(); 

然後在您的.then控制器中的成功功能,你應該有可用的響應。

+0

我嘗試了你建議的方式,但沒有運氣 – Ashok

+0

我得到了回覆給控制器的回覆。將數據設置爲範圍並返回到僅顯示爲空的視圖。我試圖在我的回調函數中設置一個簡單的字符串,如$ scope.edituserData =「test」;即使這不起作用 – Ashok

+0

你從'editUserSuccess'函數得到的迴應是什麼? –

相關問題