angular.js(angular用户界面):“解析”在子组件中不返回任何内容

6l7fqoea  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(361)

尝试从“resolve”对象获取数据时。我无法从父组件中找到任何内容。

结构

合作伙伴组成部分
合作伙伴列表组件

结果

父代码

function partnerCtrl($uibModal, get, role, loader, toastr, $translate) { ...
  vm.search = () => {
    loader.show();
    get.searchUser(vm.userId, vm.type).then((res) => {
      if (res.data.d.results.length) {
        const modalInstance = $uibModal.open({
          animation: true,
          ariaLabelledBy: 'modal-title',
          ariaDescribedBy: 'modal-body',
          component: 'partnerList',
          size: 'lg',
          resolve: {
            items() {
              return res.data.d.results;
            },
          },
        });
   }

子代码

function partnerListCtrl($scope, uiGridConstants) {
    const $ctrl = this;

    $ctrl.items = this.resolve.items;

    this.gridOptions = {...},
        ],
        data: this.resolve.items,
    };

   ...
}
cs7cruho

cs7cruho1#

items 应该是解析成员中的命名属性

...
resolve: {
    items: () => {
        return res.data.d.results;
    },
},
...

请注意,它是一个箭头函数,用于确保 res 仍在范围内。
最后,您应该能够将此解析值注入控制器的构造函数中。在本例中,声明控制器时,注入令牌字符串与解析对象中的成员名称相同 "item" ```
function partnerListCtrl($scope, uiGridConstants, items) {
const $ctrl = this;

$ctrl.items = items;

this.gridOptions = {...},
    ],
    data: this.resolve.items,
};

...
}

app.controller("partnerList", ["$scope", "uiGridConstants", "items", partnerListCtrl]);

相关问题