1

I was working with ngRoute before I migrated to ui-router.

In my application I have this config :

myapp.config(function($stateProvider, $urlRouterProvider) { $stateProvider .state('home', { url: '/home', templateUrl: 'views/home.html' }) .state('about', { url: '/about', templateUrl: 'views/about.html' }) .state('contact', { url: '/contact', templateUrl: 'views/contact.html' }) .state('work', { url: '/work', templateUrl: 'views/work.html' }) .state('work.top_authors', { url: '/top_authors', templateUrl: 'views/work/top_authors.html', controller: 'topAuthorsController' }) .state('work.articles_evolution', { url: '/articles_evolution', templateUrl: 'views/work/articles_evolution.html', controller: 'articlesEvolutionController' }) .state('work.top_organizations', { url: '/top_organizations', templateUrl: 'views/work/top_organizations.html', controller: 'topOrganizationsController' }) .state('work.words_cloud', { url: '/words_cloud', templateUrl: 'views/work/words_cloud.html', controller: 'wordsCloudController' }) .state('work.authors', { url: '/authors', templateUrl: 'views/work/authors.html', controller: 'authorsController' }) .state('work.words', { url: '/words', templateUrl: 'views/work/words.html', controller: 'wordsController' }) .state('work.jobs_offers', { url: '/jobs_offers', templateUrl: 'views/work/jobs_offers.html', controller: 'JobOffersByCounteryController' }); $urlRouterProvider.otherwise('/home'); }); 

for the first 4 states I have no problems, but with the others who are the work state childs I have this problem :

So, when I click on (for example) <a ui-sref="#/work/articles_evolution">Artciles Evolution</a> I get this error in console :

Error: Could not resolve '#/work/articles_evolution' from state 'work' 

but When I type the link in the browser : http://localhost/dst-angular/app/#/work/articles_evolution it works without problem.

How can I resolve this ?

My second question is:

in the html page work I have <div ui-view></div> which will be replaced by the template in the ui-sref, I want this page to contain some content and then when I click on the ui-sref to replace this content when the new template is embedded.

How can I do that ?

    1 Answer 1

    3

    You should pass state name in ui-sref instread of url:

    <a ui-sref="work.articles_evolution">Artciles Evolution</a> 

    ui-sref directive will resolve url from state name and set as href attribute of anchor tag.

      Start asking to get answers

      Find the answer to your question by asking.

      Ask question

      Explore related questions

      See similar questions with these tags.