2016-04-05 6 views
0

で注入userTemplateProvider;と角度自動にサービスを注入します。Angularjsだから角度で、このような何かを行うことが可能である追加の変数

ここで、私はこの関数に変数を渡す必要がある状況にいます。

私が行った場合:

userTemplateProvider($sessionStorage, $templateRequest, myvar); 

そしてofcourseの機能にmyvarを追加します。

function userTemplateProvider($sessionStorage, $templateRequest, myvar){ 
var user = $sessionStorage.user; 
} 

次に、2つのサービスが空になります。

だから私の質問は、私は、変数を追加しますが、まだサービスを注入

んどのように私の完全なコードです:

ダッシュボードモジュール

angular.module('Dashboard',[]) 

.config(['$stateProvider', '$urlRouterProvider', 'JQ_CONFIG', 'USER_ROLES', 'hammerDefaultOptsProvider', 
    function ($stateProvider, $urlRouterProvider, JQ_CONFIG, USER_ROLES, hammerDefaultOptsProvider) { 
      $stateProvider 
      .state('dashboard', { 
       abstract: true, 
       url: '/dashboard', 
       templateProvider: userTemplateProvider, 
       resolve: { 
        deps: ['uiLoad', 
         function (uiLoad) { 
          return uiLoad.load([ 
           'js/controllers/headerController.js' 
          ]); 
         }] 
       } 
      }) 
      .state('dashboard.index', { 
       url: '/index', 
       templateProvider:getTemplate, 
       data: { 
        authorizedRoles: [USER_ROLES.lb, USER_ROLES.superadmin, USER_ROLES.subadmin] 
       }, 
       resolve: { 
        deps: ['uiLoad', 
         function (uiLoad) { 
          return uiLoad.load([ 
           'js/controllers/chart.js', 
           'js/controllers/dashboard/DashboardController.js', 
           'js/controllers/dashboard/ClientDashboardController.js' 
          ]); 
         }] 
       } 
      }) 

    }]); 

TemplateLoader

angular.module('TemplateLoader', []); 

function userTemplateProvider($sessionStorage, $templateRequest) { 
    var templateLocation = $sessionStorage.activeUser.user.user_type.super_type_id == 1 ? 'tpl/app.html' : 'tpl/client/client.html'; 
    return $templateRequest(templateLocation); 
} 
function getTemplate($state, $sessionStorage) { 
    var templateLocation = null; 
    switch ($sessionStorage.activeUser.user.user_tpe.super_type_id) { 
     case 1: 
      break; 

     case 2: 
      break; 

     default: 
      break; 
    } 
    return $templateRequest(templateLocation); 

} 
+1

私はあなたが求めているものを理解/再現することはできません。この関数はどのようなコンテキストで使用されますか?誰がそれを呼んでいる?これはコントローラですか?サービス/プロバイダですか?通常の機能ですか? – deceze

+0

@deceze il私のフルコードを追加: –

+0

サービスまたは工場を使用してください。 –

答えて

2

myvarに特化した関数を作成することはできますが、おそらく代わりに使用できるAngularの規約があります。

function userTemplateProvider(myvar) { 
    return function($sessionStorage, $templateRequest) { 
    var user = $sessionStorage.user; 
    // can also access myvar here 
    }; 
} 

はその後、私たちは通り:

userTemplateProvider(myvar); 
関連する問題