动态路由 PHP & AngularJS

3

.when('/FOO', {
  templateUrl: 'app/components/forums/id/forums.php'
})
<td><a ng-click="setRoute('FOO')"href="forums.php?id=<?= $f_id;?>"><?php echo $f_name;?></a></td>

好的。

一些背景信息。我正在制作一个论坛,我想使用AngularJS来完成它。

F_idF_name已经在之前声明过了。(这里与问题无关。)

我想要做的是动态路由。如何让Angular能够与PHP的?id=id机制配合工作?这样当我点击那个论坛时,它就会打开正确的论坛?

  • 动态路由,怎么实现呢?

你需要决定,是要使用Angular路由还是通过href和页面重新加载进行导航。如果你想从PHP加载内容,我建议你在路由上定义控制器和要传递的参数,然后在控制器中使用$http.get()获取所需的内容。 - szapio
1个回答

2

您需要以以下形式开始路由,您的模板应该是通用的,并显示将传递给ForumController的论坛的获取值。

.when('/FOO/:id', {
        templateUrl: 'app/components/forums/forums.php',
        controller: 'ForumController',
        resolve: {
          forum: function ($routeParams) {
             // fetch your forum details here using $routeParams.id
          }
        }
})

虽然为了完整性我应该提到你实际上可以将templateUrl定义为一个函数,以便在需要时返回动态模板,但我猜想这并不是你想要的。

.when('/FOO/:id', {
        templateUrl: function ($routeParams) {
            return 'app/components/forums/' + $routeParams.id + '/forums.php';
        }
})

请查看我上面的编辑,如果你的PHP脚本已经从URL中获取了forumId并正确地渲染了页面,在这种情况下,你可以将templateUrl定义为一个函数,该函数将返回你的模板。 - thedoctor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接