我意识到你正在为面板进行沟通提供一种方法。在那之前,我以为我可以通过偏好对象获得一些基本的沟通。
但是如何找到应用所在的信息中心的唯一ID?
如果可能有比通过首选项对象共享信息更好的解决方案,让我描述一下我们想要解决的具体问题:我们项目结构中的某些项目代表我们想要显示“度量标准”的“程序” “ - 该仪表板将由共享仪表板上的多个应用程序组成。但是,在拉力赛项目层次结构中,项目并不是一致的,虽然我们有很多反弹项目,但我们只有大约四个项目。
正因为如此,我希望这个代码指标仪表板成为Rally中的一个页面,可以轻松地在我们拥有的各种程序之间切换。我不希望使用项目层次结构来执行此操作,因为我们有很多项目,而且查找和选择程序非常耗时且很棘手。
答案 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>