【问题标题】:dynamic change of templateUrl in ui-router from one state to anotherui-router中templateUrl从一种状态到另一种状态的动态变化
【发布时间】:2016-08-09 03:46:51
【问题描述】:

html:

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

上面的代码在 ng-repeat 中,许多模板链接都加载了名称和 id,所以当我点击每个链接时,href 将更新,id 编号附加到选定的模板链接。我正在使用相同的控制器生成大约十个模板。我将 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'
}))

谁能解决这个问题?

【问题讨论】:

    标签: javascript angularjs angular-ui-router state


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊!感谢@Radim Kohler 回答我。以及额外的动态解决方案:)
    • 如果有帮助就太好了 ;) 享受 UI-Router,先生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    相关资源
    最近更新 更多