2016-12-19 20 views
27

tôi chỉ nhận thấy rằng tôi có dấu chấm than sau khi băm (#!) Trong tất cả các tuyến đường của tôi, tôi không chắc chắn làm thế nào và tại sao tôi nhận chúng bởi vì hôm nay tôi didn ' t đã có họ, là có bất kỳ giải pháp để thoát khỏi chúng và tôi sẽ đánh giá cao nếu ai đó có thể giải thích cho tôi những gì là nó, và làm thế nào tôi đã nhận nó. Vì vậy, chỉ có giải pháp mà tôi tìm thấy cho đến nay là đặt dấu chấm than theo cách thủ công trên mỗi href trong ứng dụng của tôi, nhưng điều này làm phiền tôi và tôi không biết phải làm gì. Tôi tạo ra ứng dụng của tôi với máy phát điện yeoman và app.js của tôi trông như thế nàyDấu chấm than sau khi băm (#!) Trong ứng dụng angularjs

angular 
    .module('appNameApp', [ 
    'ngAnimate', 
    'ngCookies', 
    'ngResource', 
    'ngRoute', 
    'ngSanitize', 
    'ngTouch' 
    ]) 
    .config(function ($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'views/main.html', 
     controller: 'MainCtrl', 
     controllerAs: 'main' 
     }) 
     .when('/about', { 
     templateUrl: 'views/about.html', 
     controller: 'AboutCtrl', 
     controllerAs: 'about' 
     }) 
     .when('/jaspo', { 
     templateUrl: 'views/about.html', 
     controller: 'jaspoCtrl', 
     controllerAs: 'vm' 
     }) 
     .otherwise({ 
     redirectTo: '/' 
     }); 
    }); 
+0

bạn có thể có cấu hình khác ở đâu đó đang cài đặt hashPrefix cũng như thẻ meta cho nó. Bạn có phải là người đã có vấn đề tương tự trước đó do cài đặt bower? nếu có quá nhiều chi tiết bị bỏ sót ở đây – charlietfl

+0

Hmm chi tiết đó ở đâu? –

+1

Có thể trùng lặp với tiền tố [URL băm-bang (#! /) Thay vì băm đơn giản (# /) trong Angular 1.6] (http://stackoverflow.com/questions/41226122/url-hash-bang-prefix-instead- of-simple-hash-in-angular-1-6) – Mistalis

Trả lời

63

Sửa 2 dòng:

.config(function ($routeProvider) { 
$routeProvider 

là:

.config(function ($routeProvider,$locationProvider) { 
    $locationProvider.hashPrefix(''); 
    $routeProvider 

tín dụng nên đến: https://stackoverflow.com/a/41223197/1564146

+2

Thx tôi sẽ thử nó, bạn có biết lý do tại sao tôi có! sau # ? Im không quen thuộc với nó và không có ý tưởng đó có nghĩa là –

+5

! được đưa vào url để tránh có thể có các băm rỗng như 'url/#' được công nhận là neo và làm cho trang đi lên đầu trang – Skrew

+1

Xin lỗi tôi sẽ chấp nhận nó một lần khi tôi kiểm tra giải pháp của bạn. –

21

Bạn có thể cập nhật phiên bản góc từ 1.5 đến 1.6, bởi vì trên 1.6, nhóm góc cạnh cided để thay đổi tiền tố hash $ location mặc định thành '!'. Như @Skrew được đề xuất, bạn có thể thay đổi điều đó thành '' bằng $locationProvider.hashPrefix('');

Here bạn có thể đọc về điều đó.

+0

Đúng vậy, phiên bản của tôi là 1,6. Cảm ơn bạn đã giải thích. –

+0

Tôi rất vui vì tôi có thể giúp bạn :-)! – Sheki

+1

Tôi chỉ yêu tất cả các thay đổi đột phá góc <3 – pootzko

2

Hàm của bạn thiếu vị tríProvider và cần chỉ định html5Mode cho locationProvider. Xem https://docs.angularjs.org/api/ng/provider/$locationProvider. Thay vì:

.config(function ($routeProvider) { $routeProvider .when('/', {

thử:

.config(function ($locationProvider, $routeProvider) { $locationProvider.html5Mode({ enabled:true }); $routeProvider .when('/',{

Theo mặc định, bạn cũng cần phải xác định một thẻ căn cứ <base href="/"> trong file index.html của bạn.

Các vấn đề liên quan