0

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

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

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

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

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

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

安迪想法如何访问kendoUpload应用了的对象?或者在 html 元素上指定通用 url 的其他方法?

ps 在写这篇文章的时候,注意到这可以用MVVM来完成,但是对于一个简单的事情来说它有太多的黑魔法,这是否适用于同一页面上的许多(50-100)上传?

4

1 回答 1

3

您可以手动迭代,这this就是您要在其上创建小部件的 DOM 元素:

$(document).ready(function () {
    $(".single-file-upload").each(function () {
        $(this).kendoUpload({
            multiple: false,
            async: {
                saveUrl: $(this).data('saveurl'),
                autoUpload: false
            }
        });
    });
});
于 2014-01-10T01:40:05.347 回答