在角度路由后,数据没有被填充到控制器视图中

问题描述:

我在我的视图(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'之前,会显示什么? –

您的服务只需要返回成功的数据。现在它只是返回承诺。

(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'函数得到的回应是什么? –