1

我有以下页面:

<!doctype html>
<html lang="en" ng-app="myModule">
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
    <script>

        var myModule = angular.module('somename', []);

          myModule.config(function ($routeProvider) {
            $routeProvider.
                    when('/zzz', {templateUrl:'' , controller: TestCtrl}).
                    when('/test1', {template:' ', controller: TestDataCtrl}).
                    when('/test2', {template:'/abc ', controller: function TestCtrl1() {alert("test2")} }).
                    when('/test/:userid', { controller: TestDataCtrl }).
                    when('/users/:userid', {templateUrl: '/users/:userid?html=true', controller: UserDataCtrl}).
                    otherwise({redirectTo: '/works'});

        });

        function TestCtrl($scope) { alert("test") }

        function UserDataCtrl($scope, $http) {
    ...
        }

        function TestDataCtrl($scope, $http, $routeParams, $route) {
          $http.get('users/1').success(function (data) {
            console.log("UserDataCtrl");
            $scope.user = data;
        });

        }

    </script>
</head>
<body ng-app="myModule">
<div ng-view></div>

{{1+1}}
</body>
</html>

1)当我导航到以下网址http://localhost:7000/service/1#/test1 时,它总是向服务器(在我的情况下为 REST 服务)发送两个请求,例如http://localhost:7000/service/1and http://localhost:7000/archivarius/users/1。我可以以某种方式处理第一个(无用的)浏览器请求,也许使用 AngularJs 控制器?我的意思是当用户输入 url 时http://localhost:7000/service/1#/test1,唯一的事情(请求)应该发生在 test2 控制器中。可能吗?

2)在路由配置中,为什么我必须指定模板或模板Url?为什么我不能只为路由指定控制器?

4

2 回答 2

1

您应该始终跟踪语法正确的代码。在你的情况下,你是

  1. 为您的ng-app指令提供错误的名称(在第 2 行:这应该是ng-app="someoname"因为您的模块名称是"somename"
  2. 多次初始化您的应用程序:您有一个ng-appat line 2 ( <html lang="en" ng-app="myModule">) 和另一个 at you bodytag ( <body ng-app="myModule">)

在处理完这些语法问题后,您可以跟踪您的应用程序的逻辑流程。

于 2013-08-16T20:29:09.097 回答
0

您可能会看到两个 http 请求,因为 $http.get('users/1') 和 '/users/:userid' 路由中的 templateUrl。

在路由配置中,您应该指定模板或 templateUrl 以及一个用于路由的控制器。

再见

于 2013-08-16T19:07:47.463 回答