来自 resolve 的参数默认值

Param default value from resolve

如何在 param 默认值中使用 resolve,例如

  params: {
            id: {
                type: 'int',
                value: ['lists', function(lists) {
                    return lists[0].id;  <====
                }],
                squash: false,
                dynamic: false
            }
        },


        resolve: {
            lists: ['MailingListService', function (MailingListService) {
                //load the tree data
                return MailingListService.getMailingLists().then(function (lists) {
                    return lists;
                });
            }],
        },

因为必须同步处理参数,所以不能在默认参数值中使用解析。

但是,您可以使用 null 等占位符值,稍后将其映射到解析值。

params: {
        id: {
            type: 'int',
            value: null,
            squash: false,
            dynamic: false
        }
    },


    resolve: {
        lists: ['MailingListService', function (MailingListService) {
            //load the tree data
            return MailingListService.getMailingLists().then(function (lists) {
                return lists;
            });
        }],
        listId: ['lists', '$stateParams', function($stateParams) {
            return ($stateParams.id === null) lists[0].id : listId;
        }],
        list: ['MailingListService', 'listId', function (MailingListService, listId) {
            return MailingListService.getMailingList(listId);
        }],
    },