Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角路由中的动态页面_Javascript_Angularjs_Angular Ui Router_Angularjs Routing - Fatal编程技术网

Javascript 角路由中的动态页面

Javascript 角路由中的动态页面,javascript,angularjs,angular-ui-router,angularjs-routing,Javascript,Angularjs,Angular Ui Router,Angularjs Routing,我试图在Angular 1.3中实现动态布线。类似于它所描述和描述的东西。这些例子表明: $routeProvider.when('/:group/:pagename', { controller: 'RouteCtrl', templateUrl: 'uirouter.html' }) 然后控制器将通过$routeParams访问group和pagename。行得通 我正在尝试使此路由更具动态性,并动态选择模板和控制器: $routeProvider.when('/:grou

我试图在Angular 1.3中实现动态布线。类似于它所描述和描述的东西。这些例子表明:

$routeProvider.when('/:group/:pagename', {
    controller: 'RouteCtrl',
    templateUrl: 'uirouter.html'
})
然后控制器将通过$routeParams访问group和pagename。行得通

我正在尝试使此路由更具动态性,并动态选择模板和控制器:

$routeProvider.when('/:group/:pagename', {
    controller: $routeParams.group + 'Ctrl',
    templateUrl: $routeParams.pagename + '.html'
})
当我在
上设置断点时,
可以看到有一个$get属性,其函数的参数之一是$routeParams。但我不知道如何检索它的值


该项目处于非常早期的阶段-我可以使用ui路由器或ng路由器,如果其中任何一个具有此功能。

对于动态模板URL部分,您可以尝试:

$routeProvider.when('/:group/:pagename', {
    controller: "SomeCtrl",
    templateUrl: function(params){return params.pagename + '.html';}
})

但是,不确定是否可以对控制器执行相同操作。

对于动态模板URL部分,您可以尝试:

$routeProvider.when('/:group/:pagename', {
    controller: "SomeCtrl",
    templateUrl: function(params){return params.pagename + '.html';}
})

但是,不确定控制器是否可以执行相同操作。

您可以声明一个函数,该函数将返回
模板URL
字符串,而不是直接值,即:

$routeProvider.when('/:group/:pagename', {
    controller: $routeParams.group + 'Ctrl',
    templateUrl: function (routeParams) {
        return routeParams.pagename + '.html';
    }
});
我想对于
控制器
,情况可能也是如此,但您必须测试一下,因为我从未在控制器上使用过它


这就是说,如果你有这么多的动态逻辑在这里,也许不是把它当作不同的控制器,您可以将这些视图封装为不同的指令和
ng if
特定指令,具体取决于
$routeParams
,该指令将在一个包装控制器中设置?

您可以声明一个函数,该函数将返回
模板URL
字符串,即:

$routeProvider.when('/:group/:pagename', {
    controller: $routeParams.group + 'Ctrl',
    templateUrl: function (routeParams) {
        return routeParams.pagename + '.html';
    }
});
我想对于
控制器
,情况可能也是如此,但您必须测试一下,因为我从未在控制器上使用过它

这就是说,如果您在这里有这么多动态逻辑,可能不需要将其视为不同的控制器,您可以将这些视图封装为不同的指令,并根据
$routeParams
将在一个包装控制器中设置的
ng if
特定指令来实现(我很难为情,我错过了它…但我如何在控制器中找到
$routeParams
?我尝试注入,它给了我“未知提供者”模板URL是正确的(我很难为情,我错过了它…但我如何在控制器中找到
$routeParams
?我尝试注入,它给了我“未知提供者”