AngularJS:多个编辑表单路由?

时间:2014-04-24 02:38:31

标签: angularjs angularjs-routing

我有一个请求列表,每个请求都有一个Request_Type_Id,它映射到一个馈送列表(随着应用程序的发展可能会增长)。例如,我们可能有(id,request_type)1 - 销售信息,2 - 技术支持,3 - 订单信息,当然,每个都有唯一的字段,因此编辑表单非常不同。

点击名称,我想打开这些不同编辑表格的正确。

对于路由,我有这个:

$routeProvider
    .when('/editrequest/:req_id/:id', {
       controller: 'EditRequestController',
       templateUrl: '/App/Views/editRequest.html'      
    }).otherwise( { redirectTo: '/' } );

因为我将编辑链接设置为

<a href="#/edit/{{req.request_Id}}/{{req.id}}">{{req.title}}</a>

我仍在尝试学习AngularJS,并且想知道从这里开始的最佳方式是使用ng-show在/App/Views/editRequest.html上选择正确的编辑表单。这意味着该模板上至少会有3个表单(不是嵌套的),这可能是某些浏览器中的问题。

是否有更多AngularJS方法可以做到这一点,我还没有学到呢?

提前致谢!

1 个答案:

答案 0 :(得分:1)

templateUrl可以是字符串或函数,它接受路由参数并返回字符串。

在您的情况下,您可以这样做:

$routeProvider
.when('/editrequest/:req_id/:id', {
   controller: 'EditRequestController',
   templateUrl: function(params) {
     // use params.req_id to generate a url
     return '/App/Views/editRequest'+params.req_id+'.html';
   }
}).otherwise( { redirectTo: '/' } );

另一个值得一提的重要事项是,在hrefsrc中使用插值时要小心。请改用ng-hrefng-src