Dynamically constructed ui-sref attribute in ui-router

angular-ui-router, angularjs

Solution

You are almost there. Just the parameter must be part of the URL definition, not the name of the state:

.state('topics',{
    url: '/{id:[0-9]{1,8}}', // we can also add some constraint, like int id only
    templateUrl: "",
    controller: ""
 })

And how to call it (where `currentItem.id` would be injected dynamically as a part of some ng-repeat)

<a ui-sref="topics({id:currentItem.id})">SomeText</a>

Because `ui-sref` means: `ui-sref='stateName({param: value, param: value})`. More info here:

- ui router, URL Parameters

- ui-sref

Problem

I am new to angular and especially ui-router. Here is a link: ``` <a ui-sref="/topic/{{topic.id}}">SomeText</a> ``` The link is dynamically populated. So when I try to access that state from my config like this: ``` .state('topics/:topicId',{ url:"", templateUrl: "", controller: "" }) ``` I get this error message: Error: Could not resolve '/topics/myTopic' from state 'topics' In the above: `myTopic` is a variable name.

Original source