2

我正在调用 Ext.create('Rally.data.WsapiDataStore', params),并使用 load 事件查找结果。

我在用户可能或可能没有读取权限的程序中请求许多对象。

这适用于用户具有权限的查询。但是在用户没有权限并且可能返回零结果的情况下,加载事件似乎根本不会触发。我希望它会以不成功的标志触发,否则会以空结果返回。

由于我不知道请求失败,所以我的程序等待等待。我如何判断此请求是否因安全原因无法返回?

顺便说一句,查看网络统计信息,我相信我的所有请求都会返回“200 OK”状态。

这是我用来创建各种数据存储的方法:

_createDataStore: function(params) {
    this.openRequests++;

    var createParams = {
        model: params.type,
        autoLoad: true,

        // So I can later determine which query type it is, and which program
        requestType:    params.requestType == undefined ? params.type : params.requestType,
        program:        this.program,

        listeners: {
            load: this._onDataLoaded,
            scope: this
        },
        filters: params.filters,
        pageSize: params.pageSize,
        fetch: params.fetch,

        context:    {
            project: this.project,
            projectScopeUp: false,
            projectScopeDown: true
        },
        pageSize:   1 // We only need the count
    };
    console.log('_createDataStore', this.program, createParams.requestType);

    Ext.create('Rally.data.WsapiDataStore', createParams);
},

这是 _onDataLoaded 方法:

_onDataLoaded: function(store, data, successB) {
    console.log('_onDataLoaded', this.program, successB);
    ...

我只看到为帐户有权访问的那些查询调用此函数。

4

1 回答 1

1

您是否收到任何有关 Defect.js 或 HierarchicalRequirement.js 的请求?当我模拟问题时,您会看到在构建模型时对 TypeDefinition.js 的请求失败,因为用户无权访问指定的项目。这对我来说似乎是一个小错误。您应该能够通过显式获取指定工作区的类型的模型然后在您的商店中使用它来解决它。

Rally.data.ModelFactory.getModels({ 
    types: ['Defect', 'UserStory'], //more types, etc... 
    context: Rally.environment.getContext().getDataContext(), //use workspace
    success: function(models) {
        //your code here
    }
});
于 2012-09-11T03:35:27.277 回答