我们有很多类似的文件上传,但它们都上传到不同参数的不同url。我正在努力将MVC4应用程序中的随机javascript数量降到最低。所以我想通过html:中的数据参数提供一个保存url到剑道上传元素中
<input name="file" type="file" class="single-file-upload" data-saveurl="/some/path?entryId=2&productId=33" />
Url在每个实例中都会有所不同。有时我们甚至在一个表中上传,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属性。
Andy知道如何访问应用了kendoUpload
的对象吗?或者在html元素上指定通用url的其他方法?
p.s.在写这篇文章的时候,注意到MVVM可以做到这一点,但对于一件简单的事情来说,它有太多的黑魔法,在同一页面上上传(50-100)个文件时,这能奏效吗?
您可以手动迭代,使this
成为您在其上创建小部件的DOM元素:
$(document).ready(function () {
$(".single-file-upload").each(function () {
$(this).kendoUpload({
multiple: false,
async: {
saveUrl: $(this).data('saveurl'),
autoUpload: false
}
});
});
});