我有以下頁面:AngularJs。路由。處理服務器請求。幾個問題
<!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/1
和http://localhost:7000/archivarius/users/1
。我能以某種方式處理第一個(無用的)瀏覽器請求,也許使用AngularJs控制器?我的意思是當用戶輸入url http://localhost:7000/service/1#/test1
唯一的東西(請求)應該發生在test2控制器。可能嗎?
2)在路由配置中,爲什麼我必須指定template或templateUrl?爲什麼我不能只爲路線指定控制器?
你忘了這行'逗號'('/ zzz',{templateUrl:''controller:TestCtrl})',它應該是'when('/ zzz',{templateUrl:',controller: TestCtrl})' –
這不是問題,我忘了在文本編輯器中修改樣例時添加。最初我只想離開控制器部分。 – Sharov