在Trello Power-Up中使用卡数据

时间:2016-11-01 15:07:36

标签: javascript promise trello trello-powerup

我正在寻找一种在我正在开发的电源中使用Trello数据的方法。只要我在TrelloPowerUp.initialize()期间拥有我需要的所有东西,我就能获得通电工作,但我需要的数据只能通过Promise访问。这包括通过API存储的卡,板和上电数据。 Trello为我提供的数据包括电路板,卡,插件ID和命令。由于预计上电将返回一个阵列,我无法找到一种方法来访问任何其他类型的数据。

这是一个简单的具体例子。在其中我想检查卡的名称并相应地显示徽章。

在示例中,
t授予访问client library的权限 card授予访问以下数据的权限:

{
  "context":{
    "board":"55db14fd3e104ac8b105bd75",
    "card":"563b532e4e998440d0d88e62",
    "command":"card-badges",
    "plugin":"564ddf493f184b88ea5ddc0e"
  },
  "locale":"en-US"
} 

示例

以下是初始化card-badges的代码。请注意,该函数应返回一个数组。

TrelloPowerUp.initialize({
  'card-badges': function(t, card) {
    var badge_text,
        badge_color;

    // returns a promise with the card name
    t.card('name').then(function (name) {
      if (name == "foo") {
        badge_text = "contingent text";
        badge_color = "contingent color";
      }
    });

    return [{
      text: badge_text,
      icon: './images/icon.png',
      color: badge_color
    }]
  }
});

显然这段代码不起作用。初始化函数似乎是在不考虑承诺的情况下设置的。即使是dynamic选项,它将函数作为参数,也应该返回一个数组。

这对我来说都没有意义,因为卡中的storing and retrieving加电数据也是通过promises(t.set()t.get())完成的。由于我似乎甚至无法访问上电数据,我觉得我在评估中遗漏了一些内容。

有没有办法在初始化通电时访问promises中可用的数据?

1 个答案:

答案 0 :(得分:2)

诀窍是回复对trello的承诺。承诺应该返回Trello正在寻找的数据。 E.g。

TrelloPowerUp.initialize({
  'card-badges': function(t, card) {

    // returns a promise with the card name
    var promise = t.card('name').then(function (name) {
      var badge_text,
          badge_color;
      if (name == "foo") {
        badge_text = "contingent text";
        badge_color = "contingent color";
      }
      return [{
        text: badge_text,
        icon: './images/icon.png',
        color: badge_color
      }]
    });

    return promise;
  }
});