[英]Pass parameter from Angularjs controller to $stateProvider
這是我的Angularjs .config文件,每當使用ui-router從另一個HTML激活“任務”時,該文件都會打開lead.html頁面。
App
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){
$stateProvider
.state('tasks', {
templateUrl: {{name}}.html,
controller:"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");
}]);
我想讓templateUrl從TasksController接受參數,以便它根據TasksController中設置的參數重定向到相關頁面。 請指導我如何執行此操作。
謝謝
您可以嘗試使用$ 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');
}]);
也不要忘記在控制器中進行注射。 還沒有測試過,但是您可能需要$ state像這樣:
self.$state.go('tasks', { page: 'some_url.html' }, { });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.