2016-07-22 11 views
0

関数ContentService.getQuestions()を使用して、プロパティ 'Type'を持つJSONを取得します。このプロパティタイプには 'DevOps'などがあります。 Typeプロパティに文字列 'DevOps'が含まれている場合は、別のテンプレートをロードします。それが 'Devops'でない場合、私は別のテンプレートをロードしたいと思います。JSONレスポンスに基づいた動的ルーティングangularJS

コード:tempUrlが変化doestコードで

function configureRouting($routeProvider) { 
    var tempUrl = ''; 

    $routeProvider 
     .when('/form', { 
      resolve: { 
       dataService: function (ContentService) { 
        var questions = ContentService.getQuestions(); 
        var resolved = Promise.resolve(questions); 
        resolved.then(function (q) { 
         console.log(q.Type); 
         if (q.Type === 'DevOps') { 
          tempUrl = 'components/devops/template.html'; 
         } else { 
          tempUrl = 'components/hr/template.html'; 
         } 
        }); 
        return questions; 
       } 
      }, 
      controller: 'FormController', 
      controllerAs: 'frmCtrl', 
      templateUrl: tempUrl 
     }) 
     .otherwise({ 
      redirectTo: '/form' 
     }); 
} 

、templateUrlため:tempUrlが変更ありえない元の変数をとります。 私は私のJSONプロパティに基づいて別のテンプレートを読み込むことができるソリューションが必要です。

あなたはこのようにテンプレートのURLを返す関数を使用することができます

答えて

0

...

function configureRouting($routeProvider) { 
     $routeProvider 
      .when('/form', {      
       controller: 'FormController', 
       controllerAs: 'frmCtrl', 
       templateUrl: function(ContentService){ 
        var tempUrl = ''; 
        var questions = ContentService.getQuestions(); 
         var resolved = Promise.resolve(questions); 
         resolved.then(function (q) { 
          console.log(q.Type); 
          if (q.Type === 'DevOps') { 
           tempUrl = 'components/devops/template.html'; 
          } else { 
           tempUrl = 'components/hr/template.html'; 
          } 
         }); 
         return tempUrl; 
       } 

      }) 
      .otherwise({ 
       redirectTo: '/form' 
      }); 
    } 
+0

その後、私はTypeError例外を取得しています:ContentService.getQuestionsは関数ではありません。 – HhK

関連する問題