1

我意识到您正在想出一种让面板进行交流的方式。在那之前,我一直在想我可以通过偏好对象进行一些基本的交流。

但是,如何为应用程序所在的仪表板找到唯一 ID?

如果可能有比通过首选项对象共享信息更好的解决方案,让我描述一下我们想要解决的具体问题:我们项目结构中的某些项目代表我们想要显示“指标仪表板”的“程序”——该仪表板将由共享仪表板上的多个应用程序组成。但是,在拉力赛项目层次结构中,项目的级别并不一致,尽管我们有很多很多的拉力赛项目,但我们只有大约四个项目。

正因为如此,我希望这个代码指标仪表板成为 Rally 中的一个页面,它可以轻松地在我们拥有的各种程序之间切换。我不希望使用项目层次结构来执行此操作,因为我们有很多项目,而且查找和选择程序既耗时又棘手。

4

1 回答 1

2

我破解了示例,创建了一个可以在两个面板之间传递事件的应用程序示例。目前这是非常不受支持的,我们保留在没有任何警告的情况下随时破坏它的权利。

话虽如此,您可以看到当前不受支持的获取应用程序 ID 的方式,如果您制作此应用程序的两个副本,您可以在控制台中看到应用程序在全局 Rally 消息总线上通信的结果。

你可以在这里找到它的要点

<!DOCTYPE html>
<html>
<head>
    <title>My Custom App</title>

    <!--Include SDK-->
    <script type="text/javascript" src="/apps/2.0p/sdk.js"></script>

    <!--App code-->
    <script type="text/javascript">

        Rally.onReady(function() {

            Ext.define('CustomApp', {
                extend: 'Rally.app.App',
                componentCls: 'app',
                mixins:['Rally.Messageable'],
                launch: function() {
                    var brokenInTheFutureIdThatWillWorkForNow =   Ext.Object.fromQueryString(window.location.href);
                    window.parent.Rally.Messages.subscribe("test",function(){console.error(brokenInTheFutureIdThatWillWorkForNow.panelOid,arguments);});
                    window.parent.Rally.Messages.publish("test",brokenInTheFutureIdThatWillWorkForNow.panelOid);
                    //Write app code here
                }
            });

            Rally.launchApp('CustomApp', {
                name: 'My Custom App'
            });

        });

    </script>

    <!--App styles-->
    <style type="text/css">

        .app {
            /* Add app styles here */
        }

    </style>

</head>
<body class="myApp">
</body>
</html>
于 2012-05-31T21:35:01.213 回答