这是我的Angularjs .config文件,只要使用ui-router从另一个html激活'tasks',就会打开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");
}]);
我想从TasksController中获取templateUrl参数,以便根据TasksController中的参数设置重定向到相关页面。 请指导我如何做到这一点。
由于
答案 0 :(得分: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');
}]);
也不要忘记控制器中的注射。 Haven没有对此进行测试,但您可能需要$ state这样:
self.$state.go('tasks', { page: 'some_url.html' }, { });