0

これは私のAngularjs .configファイルで、ui-routerを使って別のHTMLから 'tasks'が起動されるたびにlead.htmlページを開きます。

App 
     .config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){ 


      $stateProvider 
      .state('tasks', { 

       templateUrl: {{name}}.html, 
       controller:"TasksController" 
      }); 


     }]); 

これは、私はそれがTasksControllerで設定したパラメータに基づいて関連ページにリダイレクトするようtemplateUrlがTasksControllerからパラメータを取るようにしたい私のTaskscontroller.js

App 
     .controller(
       "TasksController", [function($scope, $http,$window) { 


      var self = this; 
      self.name = 'lead'; // I wanna use this parameter in templateUrl 
      console.log("In tasks Controller"); 

     }]); 

です。 どうすればいいですか?

おかげ

+0

あなたは '$ stateProvider .state(' タスク、{ templateUrl以下のような何か試すことができます。function($ stateParamsを) { return $ stateParams.name + '.html'; }、 コントローラ: "TasksController" }); しかし、これは手前で名前を知っている必要があります – Maverick

答えて

0

あなたは$ stateParamsを使用して試みることができる:

App.config(['$stateProvider', '$urlRouterProvider', '$stateParams', function($stateProvider, $urlRouterProvider, $stateParams) { 

    $stateProvider 
    .state('tasks', { 
     params: { 
     page: null 
     }, 
     templateUrl: {{$stateParams.page}}.html, 
     controller: "TasksController" 
    }); 
}]); 

次に、あなたのコントローラで:

App.controller("TasksController", [function($scope, $http, $window, $stateParams, $state) { 
    var self = this; 
    self.$stateParams.page = 'some_url.html'; 
    self.$state.go('tasks'); 
}]); 

もコントローラ内の注入を忘れないでください。これをテストしていませんが、このように行く、あなたは$の状態を必要とする場合があります。

self.$state.go('tasks', { page: 'some_url.html' }, { }); 
+0

しかし、このエラーが発生したときhttp:// localhost:7001/gradDashboard/pages /%7B%7B $ stateParams.page%7D%7D – Ashok

関連する問題