提供穷人的仪表板应用程序通信

时间:2012-05-27 16:04:34

标签: javascript extjs rally

我意识到你正在为面板进行沟通提供一种方法。在那之前,我以为我可以通过偏好对象获得一些基本的沟通。

但是如何找到应用所在的信息中心的唯一ID?

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

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

1 个答案:

答案 0 :(得分:2)

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

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

你可以找到它的要点here

<!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>