无法从模态元素获取 $file,Angular JS
Unable to get $file from Modal element, Angular JS
我正在使用提示用户 select 将文件上传到网站的模态元素,但我似乎无法获取该文件。这是我的 HTML:
<div class="modal-section align-left">
<input type="file" accept='application/pdf' ng-file-select="onFileSelect($files)" file></input>
</div>
这里是 javascript 我正在尝试使用它:
$scope.onFileSelect = ($file);
看起来这应该是一个足够简单的任务,但有些东西没有连接,我不确定是什么。我不断收到“$file is not defined”错误。
任何想法都会有所帮助!谢谢!
刚刚意识到我还应该提到我在 git 集线器上使用了 cheynewallace 的代码,可以在这里找到:https://github.com/cheynewallace/angular-s3-upload
尝试让我的模态元素将 selected 文件发送到 Amazon Web Services。我得到了他提供的版本,但无论出于何种原因,我都无法使用模态元素。
看起来您可能混淆了两个指令。 ng-file-select 来自你提到的 danialfarid's angular-file-upload while the file directive is from cheynewallace's example。
如果您要使用 cheynewallace 的指令,那么您可能错过了他的指令(上面已链接)。查看代码,他的指令只支持单个文件上传,并将文件设置为$scope.file变量。在他的示例中,他使用:
<input type="file" file></input>
<a class="btn btn-primary btn-block btn-lg" ng-click="upload()">Upload</a>
您的控制器需要像这样:
app.controller('myController', function($scope) {
$scope.upload = function() {
// do something with $scope.file
};
});
如果您要使用 danialfarid 的指令,则可以从输入中删除 file
属性。这会给你留下:
<input type="file" accept='application/pdf' ng-file-change="onFileSelect($files)"></input>
你的控制器需要看起来像这样:
app.controller('myController', function($scope) {
$scope.onFileSelect = function($files) {
// do something with $files
};
});
警告我没有测试过这两种方法,但我相信任何一种都会让你进入写作轨道。
更新
Here's a working plunk。我刚刚用上面的代码做了一个简单的具体示例,但是我的第一个片段关于 ng-file-change
是错误的。它应该像您最初那样 ng-file-select
。 plunk 说明了这两个指令。我还在 danialfarid 示例中添加了 ng-multiple='true'
属性以允许多个文件 selection.
我正在使用提示用户 select 将文件上传到网站的模态元素,但我似乎无法获取该文件。这是我的 HTML:
<div class="modal-section align-left">
<input type="file" accept='application/pdf' ng-file-select="onFileSelect($files)" file></input>
</div>
这里是 javascript 我正在尝试使用它:
$scope.onFileSelect = ($file);
看起来这应该是一个足够简单的任务,但有些东西没有连接,我不确定是什么。我不断收到“$file is not defined”错误。
任何想法都会有所帮助!谢谢!
刚刚意识到我还应该提到我在 git 集线器上使用了 cheynewallace 的代码,可以在这里找到:https://github.com/cheynewallace/angular-s3-upload 尝试让我的模态元素将 selected 文件发送到 Amazon Web Services。我得到了他提供的版本,但无论出于何种原因,我都无法使用模态元素。
看起来您可能混淆了两个指令。 ng-file-select 来自你提到的 danialfarid's angular-file-upload while the file directive is from cheynewallace's example。
如果您要使用 cheynewallace 的指令,那么您可能错过了他的指令(上面已链接)。查看代码,他的指令只支持单个文件上传,并将文件设置为$scope.file变量。在他的示例中,他使用:
<input type="file" file></input>
<a class="btn btn-primary btn-block btn-lg" ng-click="upload()">Upload</a>
您的控制器需要像这样:
app.controller('myController', function($scope) {
$scope.upload = function() {
// do something with $scope.file
};
});
如果您要使用 danialfarid 的指令,则可以从输入中删除 file
属性。这会给你留下:
<input type="file" accept='application/pdf' ng-file-change="onFileSelect($files)"></input>
你的控制器需要看起来像这样:
app.controller('myController', function($scope) {
$scope.onFileSelect = function($files) {
// do something with $files
};
});
警告我没有测试过这两种方法,但我相信任何一种都会让你进入写作轨道。
更新
Here's a working plunk。我刚刚用上面的代码做了一个简单的具体示例,但是我的第一个片段关于 ng-file-change
是错误的。它应该像您最初那样 ng-file-select
。 plunk 说明了这两个指令。我还在 danialfarid 示例中添加了 ng-multiple='true'
属性以允许多个文件 selection.