2017-02-14 1 views
0

私は電話リストとそのリストの各要素に電話の詳細情報が含まれている簡単なWebプロジェクトを持っています。電話IDをクリックした場合、その電話のページに移動するだけですが、電話IDをクリックしても何も起こりません。AngularJSは別のページにルーティングすることができません

アプリがロードされたとき、それはURLをインデックスページに行ってきました:

http://localhost:8080/angular-route-multiple-views/index.html#!/phones

私は最初の電話番号をクリックした後、URLは次のように変更されますが、それはしませんでした。まったくそのページにアクセスしてください。

http://localhost:8080/angular-route-multiple-views/index.html#!/phones#%2Fphones%2Fnexus

誰かが助け、それが携帯電話の詳細ページに移動しなかった理由を私に教えていただけますか?ありがとう。

index.htmlを

<!DOCTYPE html> 
<html ng-app="mainModule"> 
<head> 
<meta charset="ISO-8859-1"> 
<title>AngularJS Demo</title> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-route.js"></script> 
<script src="js/main-module.js"></script> 
<script src="js/phonelist-module.js"></script> 
<script src="js/phonelist-component.js"></script> 
<script src="js/config.js"></script> 
<script src="js/phonedetail-module.js"></script> 
<script src="js/phonedetail-component.js"></script>   
</head> 
<body> 
    <div ng-view></div> 
</body> 
</html> 

主module.js:

angular.module('mainModule', ['ngRoute', 'phoneList', 'phoneDetail']); 

config.jsの:

angular.module('mainModule'). 
config(['$locationProvider', '$routeProvider', 
     function config($locationProvider, $routeProvider) { 
     $locationProvider.hashPrefix('!'); 

     $routeProvider. 
     when('/phones', { 
     template: '<phone-list></phone-list>' 
     }). 
     when('/phones/:phoneId', { 
     template: '<phone-detail></phone-detail>' 
     }). 
     otherwise('/phones'); 
    } 
]); 

れるphonelist-module.js:

angular.module('phoneList', ['ngRoute']); 

れるphonelist-component.js:

angular.module('phoneList').component('phoneList', { 
templateUrl: 'js/phone-list.template.html', 
    controller: function PhoneListController() { 
    this.phones = [ 
    { 
     id: 'nexus', 
     name: 'Nexus S', 
     snippet: 'Fast just got faster with Nexus S.', 
    }, 
    { 
     id: 'motorola-xoom', 
     name: 'MOTOROLA XOOM™', 
     snippet: 'The Next, Next Generation tablet.', 
    } 
    ]; 
} 
}); 

phonedetail-module.js:

angular.module('phoneDetail', ['ngRoute']); 

phonedetail成分。 js:

angular.module('phoneDetail'). 
    component('phoneDetail', { 
    template: 'TBD: Detail view for <span>{{$ctrl.phoneId}}</span>', 
    controller: ['$routeParams', 
    function PhoneDetailController($routeParams) { 
     this.phoneId = $routeParams.phoneId; 
    } 
    ] 
}); 

電話list.template.html:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Phone List</title> 
</head> 
<body> 
    <li ng-repeat="phone in $ctrl.phones" > 
    <a href="#/phones/{{phone.id}}">{{phone.name}}</a> 
    <p>{{phone.snippet}}</p> 
    </li> 
</ul> 
</body> 
</html> 
+1

hrefをng-hrefに変更しようとしましたか? '{{phone.name}}' –

答えて

1

あなたはhref属性に!を追加するのを忘れ。

<ul> 
    <li ng-repeat="phone in $ctrl.phones"> 
     <a href="#!/phones/{{phone.id}}">{{phone.name}}</a> 
     <p>{{phone.snippet}}</p> 
    </li> 
</ul> 
+0

これはうまくいきました。ありがとうございました! – jlp

関連する問題