1

我正在尝试在 Rally 中使用自定义页面,该页面使用 iframe 链接到我的外部应用程序。在运行时,我收到一个与 Rally 的 sdk.js 文件相关的 javascript 错误。

我做错了什么?

Javascript 错误:

来自 sdk.js 的 Javascript 错误

用于我的自定义页面的代码:

<script type="text/javascript" src="/apps/2.0p4/sdk.js"></script>

<script type="text/javascript">
    Rally.onReady(function() {
        Ext.define('CustomApp', {
            extend: 'Rally.app.App',
            componentCls: 'app',

            launch: function() {    

        var user = this.getContext().getUser(); 
            var projectId = Rally.environment.getContext().getProject().ObjectID;
        document.write('<div id="Timesheet"><iframe src="https://myserver/Entry.aspx?RallyUserName=' + user.UserName + '&RallyProject='+ projectId +'" height=90%  width=100% style="border-top-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-left-width: 0px;"></iframe></div>');                 

            },


        });            

        Rally.launchApp('CustomApp', {
            name: 'Timesheets'
        });
    });
</script>

问候,保罗

4

2 回答 2

0

我建议使用自定义 URL 应用程序来满足此需求:

添加应用...

自定义网址

于 2013-02-23T15:38:21.703 回答
0

当您在 sdk 深处遇到奇怪的错误时,包含 sdk-debug.js 而不是 sdk.js 通常会有所帮助。您将获得更好的堆栈跟踪,可以帮助您跟踪正在发生的事情。

在这种情况下,您的 document.write 代码正在删除应用程序期望存在的 dom 元素。使用 Ext 创建你的 dom 元素,你应该已经准备好了:

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',
    items: [
        { xtype: 'container', itemId: 'Timesheet' }
    ],

    launch: function() {
        this.down('#Timesheet').add({
           xtype: 'component',
           autoEl: {
               tag: 'iframe',
               src: '',
               //...
           }
        });
    }

或者从应用程序中的任何容器或组件中,您始终可以调用 getEl() 并直接使用 dom 元素。

于 2013-02-23T20:03:48.573 回答