gpt4 book ai didi

javascript - AngularJs。路由。处理服务器请求。几个问题

转载 作者:行者123 更新时间:2023-11-28 02:02:17 25 4
gpt4 key购买 nike

我有以下页面:

<!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/1http://localhost:7000/archivarius/users/1。我可以使用 AngularJs Controller 以某种方式处理第一个(无用的)浏览器请求吗?我的意思是,当用户输入 url http://localhost:7000/service/1#/test1 时,唯一的事情(请求)应该发生在 test2 Controller 中。可能吗?

2)在路由配置中,为什么我必须指定 template 或 templateUrl?为什么我不能只指定路由 Controller ?

最佳答案

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

  1. 为您的 ng-app 提供了错误的名称指令(在第 2 行:它应该是 ng-app="someoname" 因为你的模块名称是 "somename"
  2. 多次初始化您的应用程序: 你有一个ng-app在第 2 行( <html lang="en" ng-app="myModule"> ),另一行在您 body 处标签(<body ng-app="myModule">)

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

关于javascript - AngularJs。路由。处理服务器请求。几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com