【问题标题】:Change templateUrl in view states on the fly in angular UI router在角度 UI 路由器中动态更改视图状态中的 templateUrl
【发布时间】:2018-01-11 14:20:56
【问题描述】:

在配置中定义后,是否可以更改和重新加载状态的模板?

我想让用户点击改变当前页面的模板,我的想法是广播一个改变stateProvider中定义的templateUrl的事件,但不知道怎么做。

app.config(function($stateProvider) {

    $stateProvider

        .state('login', {
            url: '/login',
            cache: false,
            templateUrl: '/_/admin/templates/login.html',
            controller: 'login'
        });
});

【问题讨论】:

  • 你为什么要这样做?有很多解决方法,例如:ng-if ng-include 用于不同的 html 模板。

标签: javascript angularjs angular-ui-router


【解决方案1】:

您可以像这样从$stateParams 动态创建模板 URL。

app.config(function($stateProvider) {

    $stateProvider

        .state('login', {
            url: '/login',
            cache: false,
            templateUrl: ['$stateParams', function ($stateParams) {
              return 'your template';
            }],
            controller: 'login'
        });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多