2

uploadcare でダイアログを開くときに、ファイルの種類 (mp3 ファイルのみ) を制限しようとしています。

        uploadcare.loadFileGroup(soundGroupID)
        .done(function (fileGroup) {
            uploadcare.openDialog(fileGroup.files(), {
                multiple: true,
                multipleMin: 0,
                fileTypes="mp3"
            }).done(
                function (file) {
                    file.promise().done(
                        function (fileInfo) {
                            //TODO Something
                        });
                });
        })
        .fail(function () {
            // Something went wrong.
        });

バリデーターをプッシュする方法はありますか? ウィジェットにアクセスする方法はありますか? ご覧のとおり、ダイアログを開いているので、ウィジェットにどこにもアクセスできません。

4

1 に答える 1

2

残念ながら、現在の API にはダイアログ用のバリデーターはなく、ウィジェット用のみです。ただし、偽のウィジェットを作成して.openDialog()メソッドを使用することはできます。

uploadcare.loadFileGroup(soundGroupID)
.done(function (fileGroup) {
    var widget = uploadcare.MultipleWidget('<input data-multiple multiple-min="1">');
    widget.validators.push(function(info) {
        if (info.name !== null) {
            if ( ! /\.mp3$/i.test(info.name)) {
                throw Error('mp3-only');
            }
        }
    });
    widget.openDialog(null).done(
        function (file) {
            file.promise().done(
                function (fileInfo) {
                    //TODO Something
                });
        });
})
.fail(function () {
    // Something went wrong.
});

または、プライベート オプションでバリデータのリストを渡すこともでき__validatorsますが、これは内部 API であり、将来のバージョンで変更される可能性があります。

于 2014-11-10T18:55:33.200 に答える