1)使用ui-route创建至少3个共享单个状态的页面以加载它们。要实现此目的,请根据这些参数通过动态和加载视图/控制器获取状态url参数。 创建一种方法,可以在路由更改时按需加载每个页面的控制器和模板。使状态url选项具有2个参数,第二个参数可选(这可以通过在url参数上使用regexp来完成),以便其中一个页面可以基于该参数在另一个ui视图中加载其他信息。
$urlRouterProvider.otherwise('/');
$stateProvider
.state('student',{
url: "/student/:id",
templateUrl: 'partials/1.html',
controller: function ($stateParams) {
alert(1)
}})
.state('studentTwo',{
url: "/student/:id",
templateUrl: 'partials/2.html',
controller: function ($stateParams) {
alert(2)
}})
.state('studentThree',{
url: "/student/:id",
templateUrl: 'partials/3.html',
controller: function ($stateParams) {
alert(3)
}})
我已经在这里,我知道如果在前端执行ng-repeat并更改url参数,如何共享单个状态,但是如何基于这些动态加载视图和控制器paramteres?
谢谢!
答案 0 :(得分:1)
您不能对不同的州使用相同的路线。我将只停止一条路线。
$urlRouterProvider.otherwise('/');
$stateProvider
.state('student',{
url: "/student/:id",
templateUrl: 'main.html',
controller: function ($stateParams) {
alert(1)
}})
然后我将创建另一个名为partial的文件夹,并将所有视图放在那里1.html 2 n 3。
我们可以有条件
<ng-include src="'1.html'"></ng-include>//condition1
<ng-include src="'2.html'"></ng-include>//condition2
<ng-include src="'3.html'"></ng-include>//condition3
答案 1 :(得分:1)
感谢您的支持,在您的帮助和指导下,我设法做到了这样:
$urlRouterProvider.otherwise('/');
$stateProvider
.state('student',{
url: "/student/:id",
templateUrl: function ($stateParams){
return 'partials/' + $stateParams.id + '.html';
},
controllerProvider: function($stateParams) {
var ctrlName = $stateParams.type + "Controller";
return ctrlName;
}})
}
我做了很多恐慌:D:D