Stackoverflow에서이 질문을 볼 것으로 예상했지만 그렇지 않았습니다. 분명히 나에게 매우 흔한 것처럼 보이는이 문제를 가진 유일한 사람은 나입니다.
작업중인 기본 프로젝트가 있지만 지금까지 수행 한 모든 작업이 옳은 것처럼 보이지만 경로가 작동하지 않는 것 같습니다.
내 index.html
파일 에이 html 조각이 있습니다.
<html>
<head ng-app="myApp">
<title>New project</title>
<script src="https://code.angularjs.org/1.6.0/angular.min.js"></script>
<script src="https://code.angularjs.org/1.6.0/angular-route.min.js"></script>
<script src="app.js"></script>
</head>
<body>
<a href="#/add-quote">Add Quote</a>
<div ng-view ></div>
</body>
</html>
그리고 여기 내 app.js
:
var app = angular.module('myApp', ['ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/add-quote', {
templateUrl: 'views/add_quote.html',
controller: 'QuoteCtrl'
})
.otherwise({ redirectTo: '/' });
}]);
이제 페이지를 방문하면 다음과 같은 URL이 표시됩니다.
Add quote
버튼을 클릭하면 다음과 같이 표시됩니다 .
여기서 문제는 무엇일까요? 도와 줘서 고마워
답변
#!
href에서 hashbang 을 사용하기 만하면 됩니다.
<a href="#!/add-quote">Add Quote</a>
aa077e8 로 인해 $ location 해시 뱅 URL에 사용되는 기본 해시 프리픽스가 빈 문자열 ( ''
)에서 뱅 ( '!'
)으로 변경되었습니다 .
실제로 해시 접두사를 사용하지 않으려면 응용 프로그램에 구성 블록을 추가하여 이전 동작을 복원 할 수 있습니다.
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);
자세한 내용은
내 말을 타서 미안하지만 ..이게 어떻게 풀렸어? 이것은 방대하고 파괴적인 버그입니다. — @MiloTheGreat
참조 사양이 이미 공식적으로 지원 중단되었으므로 # 14202의 주요 변경 사항을 되돌려 야합니다. # 15715
피드백이 없기 때문에이 문제를 종료하겠습니다. 새로운 피드백을 제공 할 수 있으면 언제든지이 문제를 다시여십시오.
— https://github.com/angular/angular.js/issues/15715#issuecomment-281785369
답변
간단히 포함 !
로 href
:
<body>
<a href="#!/add-quote">Add Quote</a>
<div ng-view ></div>
</body>
답변
1.6.4에서 작동하도록 라우팅을 얻을 수 없었기 때문에 앵귤러 1.5.11을 사용하기로 결정했고 라우팅이 잘 작동하지만 when (..) 함수에서 후행 “/”로 모든 라우팅을 정의해야했습니다.
이전 버전의 앵귤러를 고수하는 것이 선택 사항이라면 신경을 구할 수 있으므로 고려하십시오 …
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {
$routeProvider
.when("/layoutandviewbox", {
templateUrl : "views/layout-and-viewbox.html"
})
.when("/basicshapes", {
templateUrl : "views/basic-shapes.html"
})
.when("/advancedshapes", {
templateUrl : "views/advanced-shapes.html"
})
.when("/groups", {
templateUrl : "views/groups.html"
})
.when("/transformations", {
templateUrl : "views/transformations.html"
})
.when("/effects", {
templateUrl : "views/effects.html"
})
.when("/", {
templateUrl : "views/basic-shapes.html"
});
});
답변
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$locationProvider.hashPrefix('');
$routeProvider
.when('/add-quote', {
templateUrl: 'views/add_quote.html',
controller: 'QuoteCtrl'
})
.otherwise({ redirectTo: '/' });
}]);
답변
이것을 시도하면 도움이 될 수 있습니다 …
HTML 또는 페이지보기
<body>
<a href="#/Home.html">Home</a>
<div ng-view></div>
</body>
스크립트 페이지에서
var app=angular
.module('myModule',['ngRoute'])
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/Home', {
templateUrl: 'FolderName/Home.html',
controller: 'homeCtr'
})
$locationProvider.hashPrefix('');
});
답변
