Puck7
Puck7

Reputation: 49

Angular routing not working for a link but working for all others

I got the routing working for all my links but one and don't understant what happens.

I include dependency to ui-router :

var app = angular.module('CMT', ['ui.router', 'angularCharts', 'uiSwitch']);

configure a new state :

app.config([
'$stateProvider',
'$urlRouterProvider',
function ($stateProvider, $urlRouterProvider){

$stateProvider.state('writeareview', {
        url: '/#/writeareview',
        templateUrl: 'partials/writeareview.html',
        controller: 'writeAReviewController'
    });

Declare the controller :

app.controller('writeAReviewController', ['$scope', function ($scope){

}]);

And my template is located in the folder "partials" with following code :

<div ng-controller="writeAReviewController"></div>

My link in index.html :

<li ng-class="getClass('/writeareview')"><a href="/#/writeareview">Donner un avis</a></li>

Any help would be much appreciated.

Upvotes: 0

Views: 382

Answers (1)

charlietfl
charlietfl

Reputation: 171690

The routing url shouldn't have a hash in it... that is done internally.

Change:

url: '/#/writeareview'

To

url: '/writeareview'

And change the href to only include hash with no leading /:

<a href="#/writeareview">

Or use

ui-sref="writeareview"

Also you will be invoking 2 instances of your controller when you include the controller in routing and in ng-controller. Remove the ng-controller duplicate

Upvotes: 1

Related Questions