当存在哈希符号时,AngularJS routeProvider

时间:2013-08-23 15:18:03

标签: angularjs angular-routing

我在IIS上托管了一个应用。应用网址是 http://localhost/tool

当我通过输入此网址加载页面时,网址路径将更改为

http://localhost/tool#/tool

$routeProvider配置中没有任何内容。 我想处理一个URL请求,如

http://localhost/tool#/request/:param1/:param2或者如果可能的话 http://localhost/tool#/request?param1=Value&?param2=value

如何编写$routeProvider配置?

此外,在我的情况下,用户需要一个直接网址来获取网页的状态,因此用户可能无法从http://localhost/tool开始,但可以从http://localhost/tool#/request/:param1/:param2开始。

请帮忙。

2 个答案:

答案 0 :(得分:0)

我认为有可能有像localhost / tool#/ request这样的URL吗?param1 = Value&?param2 = value但是:

angular.module('myApp').
    config(
        ['$routeProvider', function($routeProvider){
                $routeProvider.
                    when('/tool', {templateUrl: './view/partial/tool_list.html', controller: ToolListCtrl}).
                    when('/tool/:param1/:param2', {templateUrl: './view/partial/tool_details.html', controller: ToolDetailCtrl}).

                    otherwise({redirectTo: '/tool'}); //here you can redirect to whatYouWantUrl
        }
        ]);

您可以在此处找到所需的所有信息:http://docs.angularjs.org/tutorial/step_07

答案 1 :(得分:0)

E.H。适合路由设置。如果你想将路由参数传递给控制器​​,你可以这样做(从他链接的教程):

function PhoneDetailCtrl($scope, $routeParams) {
  $scope.phoneId = $routeParams.phoneId;
}

如果你想跟踪"状态"在根据传入的内容管理其他数据时,您必须自己完成。我已经通过使用服务并将其注入控制器(如果您需要从多个位置访问它)来完成此操作。