角$ routeProvider:为什么CRUD新的路线不工作? [英] Angular $routeProvider: Why does CRUD new route not work?

查看:178
本文介绍了角$ routeProvider:为什么CRUD新的路线不工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要建REST风格的CRUD操作的角度应用程序。几乎一切工作除了 /用户/新路线〜它显示的显示的视图代替的指定新的的看法在$ routeProvider。然而,/新确实工作。我没有收到在JS控制台任何反馈。任何想法或例子我应该读?

 的App.config [
  '$ routeProvider
  '$ locationProvider  ($ routeProvider,$ locationProvider,配置) - GT;
    $ routeProvider
      。什么时候('/',
        templateUrl:/partials/home.html
      )。当('/用户,
        templateUrl:'谐音/用户/ index.html的
        控制器:'UserIndexCtrl
      )。当('/用户/:身份证',
        templateUrl:'谐音/用户/ show.html
        控制器:'UserShowCtrl
      )。当('/用户/:ID /编辑',
        templateUrl:'谐音/用户/ edit.html
        控制器:'UserEditCtrl
      #为什么以下不工作:
      )。当('/用户/新,
        templateUrl:'谐音/用户/ new.html
        控制器:'UserNewCtrl
      #但是这并不:
      )。当('/新,
        templateUrl:'谐音/用户/ new.html
        控制器:'UserNewCtrl
      )。否则(redirectTo:'/')
    $ locationProvider.html5Mode(真)
]


解决方案

在$ routeProvider尝试从TOP定义BOTTOM测试URL模式。

所以URL模式 /用户/新匹配 /用户/:ID 之前定义的第三个 /用户/新定义第5位。

如果你定义 /用户/新 /用户/:ID ,我期望它会正常工作

在code应该像下面。

 的App.config [
  '$ routeProvider
  '$ locationProvider  ($ routeProvider,$ locationProvider,配置) - GT;
    $ routeProvider
      。什么时候('/',
        templateUrl:/partials/home.html
      )。当('/用户,
        templateUrl:'谐音/用户/ index.html的
        控制器:'UserIndexCtrl
      #你之前应该写'/用户/:身份证'
      )。当('/用户/新,
        templateUrl:'谐音/用户/ new.html
        控制器:'UserNewCtrl
      )。当('/用户/:身份证',
        templateUrl:'谐音/用户/ show.html
        控制器:'UserShowCtrl
      )。当('/用户/:ID /编辑',
        templateUrl:'谐音/用户/ edit.html
        控制器:'UserEditCtrl
      )。当('/新,
        templateUrl:'谐音/用户/ new.html
        控制器:'UserNewCtrl
      )。否则(redirectTo:'/')
    $ locationProvider.html5Mode(真)
]

I'm building an Angular app with RESTful CRUD actions. Almost everything is working except for the /users/new route ~ it displays the show view instead of new view specified in $routeProvider. However, '/new' does work. I'm not getting any feedback in the js console. Any ideas or examples I should read?

App.config [
  '$routeProvider'
  '$locationProvider'

  ($routeProvider, $locationProvider, config) ->
    $routeProvider
      .when('/',
        templateUrl: '/partials/home.html'
      ).when('/users',
        templateUrl: 'partials/users/index.html'
        controller: 'UserIndexCtrl'
      ).when('/users/:id',
        templateUrl: 'partials/users/show.html'
        controller: 'UserShowCtrl'
      ).when('/users/:id/edit',
        templateUrl: 'partials/users/edit.html'
        controller: 'UserEditCtrl'
      # why does following not work:
      ).when('/users/new',
        templateUrl: 'partials/users/new.html'
        controller: 'UserNewCtrl'
      # but this does:
      ).when('/new',
        templateUrl: 'partials/users/new.html'
        controller: 'UserNewCtrl'
      ).otherwise(redirectTo: '/')
    $locationProvider.html5Mode(true)
]

解决方案

The $routeProvider try to test url pattern defined from TOP to BOTTOM.
So the URL pattern /users/new match /users/:id defined 3rd before /users/new defined 5th.

If you define /users/new before /users/:id, I expect that it would work properly.

The code should be like below.

App.config [
  '$routeProvider'
  '$locationProvider'

  ($routeProvider, $locationProvider, config) ->
    $routeProvider
      .when('/',
        templateUrl: '/partials/home.html'
      ).when('/users',
        templateUrl: 'partials/users/index.html'
        controller: 'UserIndexCtrl'
      # you should write it before '/users/:id'
      ).when('/users/new',
        templateUrl: 'partials/users/new.html'
        controller: 'UserNewCtrl'
      ).when('/users/:id',
        templateUrl: 'partials/users/show.html'
        controller: 'UserShowCtrl'
      ).when('/users/:id/edit',
        templateUrl: 'partials/users/edit.html'
        controller: 'UserEditCtrl'
      ).when('/new',
        templateUrl: 'partials/users/new.html'
        controller: 'UserNewCtrl'
      ).otherwise(redirectTo: '/')
    $locationProvider.html5Mode(true)
]

这篇关于角$ routeProvider:为什么CRUD新的路线不工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆