我正在尝试使用Restful/Ruby对话来构建我的应用程序/<resource>/[method]/[id].我之前在使用像CodeIgniter这样的服务器端MVC框架时是如何基于URI动态路由的:
恩.
www.foo.com/bar/baz/1
然后应用程序将使用baz控制器/类中的方法bar并返回views/bar/baz.php(填充数据bar->baz)
我想在Angular中做同样的事情,但我不确定它是否支持这个(如果确实如此,我不确定如何去做).目前我使用$routeProvider的when方法来指定每种情况.$ location.path()看起来可能有我需要的东西,但我认为我不能在app.js(内config())中使用它.
我想做的是这样的事情:
.config([
  '$routeProvider', function($routeProvider) {
    $routeProvider
    .when(//<resource> controller exists
      resource+'/'+method, {
        "templateURL": "views/" + resource + "/" + method + ".html",
        "controller":  resource
      }
    ).otherwise({ "redirectTo":"/error" });
  }
]);
并且路由器自动调用适当的方法.
编辑另外,为什么$ routeProvider在我指定的时候吓坏了when('/foo/bar', {…})?
编辑2 Per Lee的建议,我正在考虑做这样的事情:
$routeProvider
  .when(
    '/:resource/:method/:id', {
      "templateUrl": function(routeParams){
        var path = 'views/'+routeParams.resource+'/';
        return ( typeof …我$routeProvider用来将我的所有应用程序页面路由到关联controllers,但当两个routes使用相同的controllers(即/ blog和/ blog:id)时,如何function根据当前情况初始化单独的route.
所以如果路由是/ blog我想在路由加载时初始化$ scope.loadPosts().如果路由是/ blog:id我想在路由加载时初始化$ scope.loadPost($ id).