0

在下面的示例中,我必须在角色中使用服务如何使用服务并从那里返回数组值

例子 :

 .config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider, $rootScope) {
    $urlRouterProvider.otherwise('signin');
    $stateProvider.state('site', {
        'abstract': true,
        resolve: {
            authorize: ['authorization', function (authorization) {
                return authorization.authorize();
            }, ]
        }
    })
    .state('signin', {
        parent: 'site',
        url: '/signin',
        data: {
            roles: (function () {
                //principal.GetRoles(); --> in the below line i am returning hardcoded array value but i have take that array value from below principle factory 
                return ['Dev','Admin'];
            })()
        },
        views: {
            '': { templateUrl: '/signin.html' },
            'content@': {
                templateUrl: '/index.html',
                controller: 'SigninCtrl'
            }
        },
    })}
])

服务/工厂:-从这里我需要到return array上面的自定义对象数据->signin状态内部的角色

下面的例子: -

.factory('principal', ['$q', '$http', '$timeout', '$cookieStore', '$cookies', function ($q, $http, $timeout, $cookieStore, $cookies) {
var _identity = undefined,
  _authenticated = false;

return {
    isIdentityResolved: function () {
        return angular.isDefined(_identity);
    },
    isAuthenticated: function () {
        return _authenticated;
    },
    RedirectUrl: function (absUrl) {
        $cookieStore.put('RedirectUrl', absUrl);
        return true;
    },

    GetRoles: function () {
        return ['Dev','Admin']
    },
 }
])
4

1 回答 1

0

使用此解决方案(随机示例!),您需要将这些依赖项注入到您的控制器中。这些依赖项之一就是您的服务!从那里,您可以调用您在服务中定义的任何方法 (SomeService.getSomeArray())。在您的情况下,服务方法正在调用与您正在查找的数组相关的 API。在您的控制器中注入您的服务将允许您以任何需要的方式操作数据。

 angular.module('dashboard.services.Transaction', [
      'dashboard.Config',
      'dashboard.Utils',
      'dashboard.services.GeneralModel'
])

这些将内置或自定义依赖项,您可以将其添加到模块中

确保处理依赖项的注入

.service('TransactionService', function(GeneralModelService, otherDependencies ) {
  var self = this;

  this.getPaymentInfo = function(id, callback) {
    // API callback which is calling your back end api, your params are whatever params
    // your remote method expects
  };
});
于 2016-12-10T13:08:52.177 回答