ui-router中动态构造的ui-sref属性

use*_*104 15 angularjs angular-ui-router

我是角度新手,特别是ui-router.

这是一个链接:

<a ui-sref="/topic/{{topic.id}}">SomeText</a>
Run Code Online (Sandbox Code Playgroud)

该链接是动态填充的.

所以,当我尝试从我的配置中访问该状态时,如下所示:

 .state('topics/:topicId',{
        url:"",
        templateUrl: "",
        controller: ""
    })
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

错误:无法从状态'主题'解析'/ topics/myTopic'

在上面:myTopic是一个变量名.

Rad*_*ler 31

你快到了.只是参数必须是URL定义的一部分,而不是状态的名称:

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

以及如何调用它(currentItem.id将作为某些ng-repeat的一部分动态注入的位置)

<a ui-sref="topics({id:currentItem.id})">SomeText</a>
Run Code Online (Sandbox Code Playgroud)

因为ui-sref意味着:ui-sref='stateName({param: value, param: value}).更多信息:


wil*_*ver 8

尝试使用state的简单名称作为url属性'topics'使用'topics/:topicId'.之后你可以使用ui-sref='topics({topicId: topic.id})'