从带有服务的角度组件访问数据库

时间:2017-02-17 00:41:48

标签: javascript angularjs

我正在尝试在页面加载时从数据库填充我的组合框。当我调试它时,调试点根本没有点击adminsService.test(结果)。这是为什么?我试图在没有任何条件的情况下获取数据。

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 个答案:

答案 0 :(得分:1)

尝试

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

更新

.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;
})
相关问题