javascript - angular-ui-router 更改 $state.go() 上的数据对象

标签 javascript css angularjs angular-ui-router

如何制作state ui provider数据对象

  .state('app', {
            controller: 'Ctrl',
            templateUrl: 'app/widgets/views/widget.html',
            data: {
                data: 'property'
            }

        })

我试过这样做,但它不起作用。

  .state('app.list', {
            params: {
              dataAssign: null,
            },
            controller: 'OtherCtrl',
            templateUrl: 'app/widgets/views/list.html',
            data: {
                data: this.params.dataAssign
            }

        })

基本上我需要从 $state.go() 函数分配数据。而且好像也没有办法。它需要是数据对象,因为我使用的是 angular-ui-router-styles 插件,它使用数据对象来获取样式表的路径。

有办法吗?

最佳答案

我不确定这是否有效,但您可以尝试以下操作:

使用State Change Events拦截状态转换

$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState) {
    toState.data.data = toParams.dataAssign;
});

然后你会像这样调用 $state.go():

$state.go('app.list', {dataAssign: someData});

从逻辑上讲,它似乎应该起作用,但如果不起作用,请告诉我。

更新:

请注意,所有状态转换都会发生这种情况。因此,如果您不希望出现这种情况,则可以使用 toState.name 检查状态名称。

关于javascript - angular-ui-router 更改 $state.go() 上的数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34355951/

相关文章:

javascript - 找不到任务和子任务

html - 单击后从复选框中删除悬停类

javascript - Angular formly - 如何显示自定义模板的自定义错误消息

javascript - Unresolved promise Angular

javascript - 具有手动切换功能的 CSS 移动媒体样式

Javascript if语句和&&运算符的区别

javascript - context.filter 不适用于 safari

jquery - 使用下一个/上一个箭头加入导航 - Jquery

html - 当 parent 的高度通过 padding-top 设置时设置 child 的高度

css - 移动设备中的可折叠 DIV