javascript - 如何将文件选择器添加到 angularjs 模板

标签 javascript angularjs filepicker.io angularjs-ng-include filepicker

我构建了一个需要动态更改模板的应用程序。

<div ng-include="templateUrl"></div>

我有两个模板,例如 addtext.htmladdmedia.html。我使用 angularjs 动态地改变它。但在我的 addmedia.html 模板中,我有 filepicker 的选择文件小部件。

<input type="filepicker" data-fp-apikey="..." data-fp-mimetypes="*/*" data-fp-container="modal" onchange="save_url()">

选择小部件未加载到模板中。有什么办法让它发挥作用吗?

最佳答案

嗯,我对 filepicker.io 不太了解,但据我了解,问题在于小部件是在页面加载时构建的。这意味着当您切换模板时,filepicker 可能不会自动处理它们,请参阅 documentation :

We'll automatically convert any widgets that you have on page load. However, if you want to create widgets once the page has loaded, you can... call filepicker.constructWidget(); method.

因此,我建议您使用一个简单的指令,只需将 input 标记与 type=filepicker 一起放置,然后使用前面提到的方法将 filepicker 链接到它,如下所示:

app.directive('myFilepicker', [function() {
    return {        
        transclude: true,
        restrict: "E",    
        template: '<input type="filepicker">',
        replace: 'true',
        link: function(scope, element) {
            filepicker.constructWidget(element);
        }
    };
}]);

并且在您的标记中您可以像这样使用它:

<my-filepicker data-fp-apikey="..." data-fp-mimetypes="*/*" data-fp-container="modal" onchange="save_url()"></my-filepicker>

查看此 demo 。我没有 filepicker.io API key ,但我希望这能起作用。

关于javascript - 如何将文件选择器添加到 angularjs 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28737859/

相关文章:

javascript - 变量未使用 RESTful 传递到后端

javascript - 用另一个项目替换对象列表中的一个对象项目

javascript - 使用javascript读取本地XML文件

javascript - 当我尝试将文件(图像)上传到服务器时出现错误 403

javascript - 使用 angularjs 无法从 json 文件获取数据

javascript - 将用户名存储在从登录到服务器的数组中

meteor - 为什么第三方 JavaScript 库没有在 Meteor 中呈现?

javascript - 使用 JS 以编程方式在 Safari 中打开一个新选项卡

filepicker.io - 如何强制用户在 Filestack V3 中裁剪图像

Filepicker.io-限制文件数