1

我正在使用参数将 URL 动态路由到不同的 HTML。

有什么方法可以为这些视图设置不同的控制器吗?或者我应该单独路由它们并使用controllercontrollerAs设置控制器?

由于所有模板在功能上都完全不同,这样做是否正确?我知道在更一般的情况下,这种方式仅用于安静的查询。如果不是,是否有更好的方法将不同的 URL 路由到不同的模板?

angular.module('application',['ngRoute'])
.config(['$routeProvider',function($routeProvider){
    $routeProvider
        .when('/',{
           templateUrl: 'src/app/other/homepage.html'
        })
        .when('/:category/:page',{
            templateUrl: function(params) {
                return 'src/app/'+params.category+'/'+params.page+'.html';
            }
        })
        .otherwise({
            redirectTo: '/'
        });
}]);
4

2 回答 2

2

无需controller在路由器映射中定义,只需在 HTML 中使用ng-controller.

现在,每个视图或 HTML 都将负责初始化控制器。

喜欢:(src/app/fruit/apple.html当您浏览时/fruit/apple:)

<div ng-controller="AppleController">
   <!-- Apple content -->
</div>

对于:(src/app/fruit/orange.html当您浏览时/fruit/orange:)

<div ng-controller="OrangeController">
   <!-- Orange content -->
</div>
于 2016-02-17T04:27:26.407 回答
0

这是最好的解决方案

http://ify.io/lazy-loading-in-angularjs/

示例代码在 github

https://github.com/ifyio/angularjs-lazy-loading-with-requirejs

于 2016-02-17T05:37:20.473 回答