这是我一直有的一个奇怪的问题。我把我在本地构建的一个应用程序移到了cloud9上,这样我就可以通过浏览器在线完成所有的开发工作。我不认为这是当地人搬到cloud9的原因。我有一个想法,那就是我遗漏了更多的东西,或者有过时的依赖。我不知道是否有一种方法可以检查这是否是问题所在。我并不是angular方面的专家。下面是我的依赖项package.json文件。
{
"name": "mean-app",
"version": "1.0.0",
"description": "MEAN stack application",
"main": "app.js",
"scripts": {
"start": "node app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": ""
},
"keywords": [
"mean"
],
"author": "",
"license": "ISC",
"bugs": {
"url": ""
},
"homepage": "",
"dependencies": {
"angular": "^1.6.0",
"angular-jwt": "^0.1.8",
"angular-route": "^1.6.0",
"bcrypt-nodejs": "0.0.3",
"bluebird": "^3.4.6",
"body-parser": "^1.15.2",
"express": "^4.14.0",
"jsonwebtoken": "^7.2.1",
"mongodb": "^2.2.16",
"mongoose": "^4.7.3",
"purecss": "^0.6.1",
"twilio": "^2.11.1"
},
"devDependencies": {
"mocha": "^2.3.3"
}
}我不确定为什么在我重新加载这个文件并将我的其他文件移动到新的cloud9开发环境之后,我现在有了/#!/。
如果有人能指导我如何让/#/恢复正常,因为它扰乱了我的路由。现在我的链接都没有加载了。
提前谢谢。
发布于 2016-12-21 12:34:00
您是否在将代码部署到云的同时升级了Angular的版本?在从Angular 1.5.x到1.6.x的$locationProvider中似乎有一个breaking change。
位置提供商的默认前缀是bang的Angular 1.6.0 specifies。你可以通过在你的应用的配置函数中注入$locationProvider,然后调用$locationProvider.hashPrefix(“”)来改变这一点;
这里有一支钢笔和一个例子:http://codepen.io/mac5977/pen/aBMGGm?editors=1011
JS
(function(){
'use strict';
angular.module('app', ['ngRoute'])
.config(configFxn);
configFxn.$inject = ['$routeProvider', '$locationProvider'];
function configFxn($routeProvider, $locationProvider){
$locationProvider.hashPrefix("");
$routeProvider.when('/', {
template: '<h3>/Route</h3><br/><a ng-href="#/secondpage">Switch Route</a>'} )
.when('/secondpage', {
template: '<h3>/SecondPage Route</h3><br/><a ng-href="#/">Goto Other Route</a>'} );
}
})();HTML
<div ng-app="app">
<ng-view></ng-view>
</div>https://stackoverflow.com/questions/41255088
复制相似问题