使用KenoUI上传文件:通过data-attribute提供URL

时间:2014-01-10 00:48:37

标签: javascript kendo-ui kendo-upload

我们有很多类似的文件上传,但它们都上传到具有不同参数的不同网址。我正在尝试最小化我们的MVC4应用程序中随机javascript的数量。所以我想通过html中的data-参数提供一个保存URL到kendo上传元素:

<input name="file" type="file" class="single-file-upload" data-saveurl="/some/path?entryId=2&productId=33" />

每个实例中的网址都不同。有时我们甚至会在表格中上传,而网址会因参数而异(即productId会有所不同)。

然后在javascript中我正在尝试这个:

<script>
    $(document).ready(function () {
        $(".single-file-upload").kendoUpload({
            multiple: false,
            async: {
                saveUrl: $(this).data('saveurl'),
                autoupload: false
            }
        });
    });
</script>

但这似乎不起作用:$(this).data('saveurl') 数据参数未被拾取..或者更确切地说$(this)不是我想要的,因此data属性为空,给出了空白的saveUrl属性。

Andy想知道如何访问应用kendoUpload的对象?或者在html元素上指定通用url的其他一些方法?

P.S。写这篇文章时,注意到这可以用MVVM来完成,但它对于一个简单的事情有太多的黑魔法,并且这可以在同一页面上进行许多(50-100)上传吗?

1 个答案:

答案 0 :(得分:3)

您可以手动迭代,以便this是您正在创建窗口小部件的DOM元素:

$(document).ready(function () {
    $(".single-file-upload").each(function () {
        $(this).kendoUpload({
            multiple: false,
            async: {
                saveUrl: $(this).data('saveurl'),
                autoUpload: false
            }
        });
    });
});