我已经创建了一个学习angularJs路由的基本应用程序。
当我将deviceXforces[tid] += xForce;
deviceYforces[tid] += yForce;
deviceZforces[tid] += zForce;
打印到浏览器控制台时,这就是我所看到的:
这是我的路线配置:
$routes.route
almRequirement.config(function($routeProvider) {
$routeProvider.when('/', {
templateUrl : 'home.html',
controller : 'homeController'
}).when('/addRequirement', {
templateUrl : 'addRequirement.html',
controller : 'addRequirementController'
}).when('/addModule', {
templateUrl : 'addModule.html',
controller : 'addModuleController'
}).when('/addContraint', {
templateUrl : 'addContraint.html',
controller : 'addContraintController'
}).when('/viewRequirement', {
templateUrl : 'viewRequirement.html',
controller : 'viewRequirementController'
}).when('/updateRequirement/:reqId', {
templateUrl : 'updateRequirement.html',
controller : 'updateRequirementController'
}).when('/viewParticularRequirement/:reqId', {
templateUrl : 'viewParticularRequirement.html',
controller : 'viewParticularRequirementController'
});
});
中配置的每个网址都会显示两次。任何人都可以解释为什么会这样?
这可能会帮助我下次调试我的应用程序。
答案 0 :(得分:1)
这是Angular的设计。 $routeProvider.when()
添加"重定向"到用户指定的路径,所以有或没有尾部斜线到达同一个地方。
@param {string}路径路径路径(匹配
$location.path
)。如果$location.path
包含多余的内容 尾随斜线或缺少一条,路线仍然匹配和 将更新$location.path
以添加或删除尾部斜杠以与路径定义完全匹配。
以下source code for when()
证明了(我的/**** comments ****/
已添加):
this.when = function(path, route) {
//copy original route object to preserve params inherited from proto chain
var routeCopy = shallowCopy(route);
if (angular.isUndefined(routeCopy.reloadOnSearch)) {
routeCopy.reloadOnSearch = true;
}
if (angular.isUndefined(routeCopy.caseInsensitiveMatch)) {
routeCopy.caseInsensitiveMatch = this.caseInsensitiveMatch;
}
/**** Add route as user specified it ****/
routes[path] = angular.extend(
routeCopy,
path && pathRegExp(path, routeCopy)
);
// create redirection for trailing slashes
if (path) {
var redirectPath = (path[path.length - 1] === '/')
? path.substr(0, path.length - 1)
: path + '/';
/**** Add route with / added or stripped ****/
routes[redirectPath] = angular.extend(
{redirectTo: path},
pathRegExp(redirectPath, routeCopy)
);
}
return this;
};