如何设置从SAPUI5 Controller到UploadCollection控件的上传URL?

时间:2017-07-18 15:36:32

标签: file-upload sapui5

我正在SAPUI5中使用带有instantUpload = true的UploadCollection控件 具有uploadUrl属性的UploadCollection控件,但我不想在XML视图中提供此URL。 我想通过Controller.js中的**setUploadUrl(sUploadUrl)**方法使用UploadCollection控件来提供此URL。 现在我的问题是我没有上传按钮,因为我正在使用instantUpload。那么在哪种情况下我可以编写以下内容来设置上传URL

var oFileUploader = sap.ui.getCore().byId("UploadCollection");
            var sUrl = "some URL";
            oFileUploader.setUploadUrl(sUrl);

以下代码适用于xml视图中的UploadCollectionItem。

<UploadCollectionItem
                        documentId="{documentId}"
                        fileName="{fileName}"
                        mimeType="{mimeType}"
                        thumbnailUrl="{thumbnailUrl}"
                        url="{url}"
                        enableEdit="false"
                        enableDelete="false"
                        visibleDelete="false"
                        visibleEdit="false"
                        attributes="{path : 'attributes', templateShareable : 'true'}"
                        statuses="{path : 'statuses', templateShareable : 'true'}"
                        selected="{selected}">
                        <attributes>
                            <ObjectAttribute
                                title="{title}"
                                text="{parts : ['text', 'type'], formatter : '.formatAttribute'}"
                                active="{active}"/>
                        </attributes>
                        <statuses>
                            <ObjectStatus
                                title="{title}"
                                text="{text}"
                                state="{state}"
                                icon="{icon}"
                                iconDensityAware="{iconDensityAware}"
                                textDirection="{textDirection}"/>
                        </statuses>
                    </UploadCollectionItem>
                </items>
            </UploadCollection>

如何解决此问题请帮助我。

1 个答案:

答案 0 :(得分:1)

您应该尝试控制器的onInit功能。但是如果您使用路由(如果不是,则应该),请将事件附加到模式匹配:

onInit: function() {            
        this.getRouter().getRoute(/*your route name*/).attachPatternMatched(this._onObjectMatched, this);
},

_onObjectMatched: function(oEvent) {
            var oFileUploader = sap.ui.getCore().byId("UploadCollection");
            var sUrl = "some URL";
            oFileUploader.setUploadUrl(sUrl);
}