首页 > 解决方案 > angularjs 结合两个 Trello api 并将其分配给 $rootScope 变量

问题描述

您好,我有一个函数可以结合 Trello 的两个 API。

如果我 console.log,它将正确给出结果:

在此处输入图像描述

但我想将它的值分配给 $rootScope 以便我可以将它用于组件。

我的 .run() 代码:

angular.module('workTrello', [
  'ngRoute'
])
.config()
.run(function($rootScope){

    async function trelloCards() {
        let response = await fetch(`https://api.trello.com//1/boards/5ba38efef50b8979566922d0/cards?key=${key}&token=${token}`);
        return await response.json();
      }

    async function trelloLists() {
        let response = await fetch(`https://api.trello.com/1/boards/5ba38efef50b8979566922d0/lists?key=${key}&token=${token}`)
        return await response.json();
      }

    async function bindWorkInfo() {
      const cards = await trelloCards();
      const lists = await trelloLists();

      let trelloWorkData = [];


      for (let i = 0; i < lists.length; i++) {
        const list = lists[i];
        list.name = list.name.substr(0,list.name.indexOf(' '))
        let listWithCard = [];
        for (let x = 0; x < cards.length; x++) {
          const card = cards[x];
          if (card.idList == list.id) {
            try { /** 8-12+14-16 = 6*/
              card.name = Math.abs(eval(card.name));
              listWithCard.push({
                  id:list.id, date:list.name, idCard:card.id,
                  time:card.name, task:card.badges.checkItemsChecked,
                  idMember:card.idMembers[0]
              });
            } catch (error) {}
          }
        }
        trelloWorkData.push(listWithCard);
      }
      console.log(trelloWorkData)
      return trelloWorkData;
   }

   bindWorkInfo().then((res) => $rootScope.workedInfo = res);
}

这是我的尝试:

    bindWorkInfo().then((res) => $rootScope.workedInfo = res);

但是当我 $rootScope.workedInfo从组件访问时,它将返回未定义。

有谁知道分配它的正确方法$rootScope

标签: javascriptangularjs

解决方案


您必须返回一个承诺以使该功能可以使用。更改以下返回码

return trelloWorkData;

return Promise.resolve(trelloWorkData); 

并尝试。


推荐阅读