javascript - ui-router 中 templateUrl 从一种状态到另一种状态的动态变化

标签 javascript angularjs angular-ui-router state

html:

<a ui-sref="user.tools.selectedTemplate({provider: t.id})" target="_blank">{{t.name}}</a>

以上代码在 ng-repeat 中,许多模板链接加载了名称和 ID,因此当我单击每个链接时,href 将更新为附加到所选模板链接的 ID 号。我正在使用相同的 Controller 生成大约十个模板。我将 ui-sref 中的值从一个状态传递到另一个状态,所以我需要动态 templateUrl, 我试过这个link issue但我无法发送状态参数,因为主模板页面没有参数。

这里是 app.js 中的 ui 路由器代码

.state('user.tools.template',angularAMD.route({
    url: '/template',
    templateUrl: './views/tools/select-template.html',
    controller: 'selectTplCtrl',
    controllerUrl: 'tools/selecttplCtrl'
}))

.state('user.tools.selectedTemplate',angularAMD.route({
    url: '/selectedTemplate/:provider',
    templateUrl: function($stateParams){
        return './views/tools/selected-template'+'$stateParams.provider'+'.html'
    },
    controller: 'selectedTemplateCtrl',
    controllerUrl: 'tools/selectedTemplateCtrl'
}))

谁能解决这个问题?

最佳答案

我会说你在正确的轨道上..只是 URL 构造应该像这样调整:

templateUrl: function($stateParams){
    //return './views/tools/selected-template'+'$stateParams.provider'+'.html'
    return './views/tools/selected-template'+ $stateParams.provider +'.html'
}

在这里查看更多,我们在使用动态模板链接时可以使用 UI-Router 获得什么:

关于javascript - ui-router 中 templateUrl 从一种状态到另一种状态的动态变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38841702/

相关文章:

javascript - Angular $routeProvider - 以编程方式添加路由解析

angularjs - 更新 ui.router 父状态中的已解析对象

javascript - $window 打开多个被弹出窗口阻止的链接

javascript - 有界的加减法

javascript - 切换类以选择带 Angular 报价

javascript - 语法错误: missing : after property id angular js

javascript - 如何将数组发送到查询字符串

angular - 如何使用 Angular 路由解析器解析来自 api 的数据

javascript - 在这种情况下, lastIndexOf() 比 indexOf() 好在哪里?

javascript - 重新编码函数