Angularjs动态选择控制器和模板

时间:2016-07-18 06:53:02

标签: javascript angularjs angular-ui-router angularjs-routing

我想制作路线来访问用户如下所示的用户个人资料和页面。

http://example.com/username http://example.com/page_url

这应该通过向后端API发送请求来识别路由过程。 如何使用AngularJS v1.4.8获得此功能?

现状。 (仅适用于用户名)

    .when('/:username', {
        templateUrl: 'app/views/profile.html',
        controller: 'UserProfileController',
    })

我想做什么

    .when('/:username', {
        templateUrl: select dynamically,
        controller:  select dynamically,
    })

我为配置文件和页面实体定义了单独的控制器和视图。  HTML5模式也已启用

 $locationProvider.html5Mode(true); 

1 个答案:

答案 0 :(得分:1)

为什么复杂的事情会变得简单?

只需制作一个路径来处理这两种情况,根据结果提出请求,并使用ng-if在模板中呈现不同的组件指令。

我认为不需要动态路由解决方案的复杂解决方案。

但是,如果你真的,真的希望这样做,可以使用ui-router。 只需使用onEnter事件并在获得响应后重定向到不同的路由。或者在控制器内部这样做。

只需进行ajax调用,然后使用$ state service执行以下操作:

$state.go('userprofile', params, {notify: false});