2017-02-17 69 views
0

我想在页面加载时从数据库填充我的组合框。当我调试它时,调试点根本不会碰到adminsService.test(result)。这是为什么?我试图在没有任何条件的情况下获取数据。从服务角度组件访问数据库

angular.module('adminService', []).factory('adminService', function ($rootScope, $http) { 

    var modelService = function() { 

    } 

    modelService.prototype.test = function (test) { 
     var promise = $http(
     { 
      method: 'POST', 
      url: '/Model/getTopics', 
      contentType: 'application/json', 
      data: { 
       test: test 
      } 
     }); 

     return promise; 

    } 

    viewRoleModule.controller('viewRoleController', function ($scope, $routeParams, adminService) { 

    var self = this; 
    self.$onInit = function() { 

     self.topicRoleItems = function() 
     { 
      adminService.test(result); 
     }; 
    } 
}); 


<div ng-repeat="item in $ctrl.topicRoleItems"> 
    {{item.TopicName}}   
</div> 

回答

1

尝试

self.topicRoleItems = adminService.test().then(function(result){ 
     self.topicRoleItems = result; 
}); 

UPDATE

.factory('adminService', function ($rootScope, $http,$q) { 

var modelService = []; 

modelService.test = function (test) { 
    var deferred = $q.defer(); 
    $http({ 
     method: 'POST', 
     url: '/Model/getTopics', 
     contentType: 'application/json', 
     data: { 
      test: test 
     } 
    }).success(function(resp){ 
     deferred.resolve(resp); 
    }).error(function(resp){ 
     deferred.reject(); 
    }); 

    return deferred.promise; 
    } 
    return modelService; 
}) 
+0

谢谢你,但我得到的错误是:adminService.test不是一个函数 – user6440175

+0

尝试更新。 –