在angularjs中将URL添加到url中

时间:2015-01-12 09:07:23

标签: javascript angularjs

我们使用此条款在AngularJS中附加Id

.when(
            '/fundingRequirements/:id',
            {
                templateUrl : '/views/dashboard/crowdFunding/planningFunding.html',
                controller : 'planningFunding'
            })

然后在Controller中使用了这个

$location.path("/fundingRequirements/"+data.data)

现在出现问题,首先是保存,然后在服务器上生成Id。因此,在此URL中,URL中没有Id,在第二种情况下,它是编辑,所以那时需要Id网址。我们是否需要制作另一个URL,或者在这两种情况下都有使用相同URL的方法?

注 - HTML表单,控制器,服务器站点所有方法对于这两种操作都是相同的,即保存,编辑

2 个答案:

答案 0 :(得分:1)

关注Angular's documentation,您可以通过定义所有路线来完美实现这一目标。事实上,Angular似乎评估了定义与实际URL相比的最长路径。

您可以在此处找到说明这一点的my modifications of Angular's example plunker

  .when('/Book', {
    templateUrl: 'bookroot.html',
    controller: 'BookController'
  })

我刚添加了此路线,一个任意bookroot.html模板以及指向主模板顶部/Book的链接。您将看到该链接以及其他链接正常工作。

为了总结,此示例包含以下组合参数化网址:

  • /Book
  • /Book/:bookId
  • /Book/:bookId/ch/:chapterId

答案 1 :(得分:0)

从我收集的内容中,您想要为同一个网址重定向两个不同的视图。您可能希望将ui-router用于此目的。它是一个先进的角度路由库,提供了角度默认的ng-route服务的全部功能。

您可以尝试这样的事情:

$stateProvider.state('saveOrEdit', {
url:'/fundingRequirements/:id',
templateUrl: ['$stateParams', function ($stateParams) {
    var id = $stateParamas.id
    if (id) {
          return //Template URL for edit state
     } else {
          return //Template URL for save state;
     }
  ]
})

P.S:我不确定,但这也适用于ng-route。