angularjs使用组件上传文件
我试图上传文件使用角组件结构,但我无法获得选定的文件 步骤1:模板数据。angularjs使用组件上传文件,angularjs,file,upload,components,Angularjs,File,Upload,Components,我试图上传文件使用角组件结构,但我无法获得选定的文件 步骤1:模板数据。 <form name="form"> Hello {{vm.name}} <br /> Upload: <input my-directive type="file" name="file" ng-model="files" /> <br /> <input type="button" ng-click='vm.uploadFile()'
<form name="form">
Hello {{vm.name}} <br />
Upload: <input my-directive type="file" name="file" ng-model="files" /> <br />
<input type="button" ng-click='vm.uploadFile()' value="Upload File." />
</form>
提前谢谢,我对angular是个新手:)对不起,我没有注意到你在使用typescript。我还没有真正跟上ts的速度。前几天我用下面的代码回答了一个类似的问题,但我现在找不到。请注意,ng模型和文件输入类型存在问题,因此它使用document.getElementById来确定文件。我怀疑这就是你遇到的问题
<html>
<body>
<form name="form" ng-app="app" ng-controller="Ctrl as ctrl">
Upload file:
<input type="file" id="file" ng-model="ctrl.file" />
<br/>
<br/> Enter text:
<textarea id="textarea" ng-model="ctrl.text"></textarea>
<br/>
<br/>
<button class="btn btn-primary btn-large" ng-click="ctrl.submitForm()">Submit</button>
</form>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js">
</script>
<script>
angular.module('app', []).controller('Ctrl', function() {
var vm = this;
vm.file = ""
vm.text = ""
vm.submitForm = function() {
// angular doesn't update the model for input type="file"
vm.file = document.getElementById('file').value;
var retVal = false ;
alert(vm.file);
alert(vm.text);
if (vm.file && ! vm.text)
{retVal = true}
else if (vm.text && ! vm.file)
{retVal = true}
else if (!vm.text && !vm.file)
{retVal = false}
else if (vm.text && vm.file)
{retVal = false}
if (!retVal) {
alert("Please specify either a file or text, not both!")
} else
alert("ok")
}
});
</script>
</html>
上载文件:
输入文本:
提交
角度.module('app',[]).controller('Ctrl',function(){
var vm=这个;
vm.file=“”
vm.text=“”
vm.submitForm=函数(){
//angular不更新输入类型=“文件”的模型
vm.file=document.getElementById('file').value;
var-retVal=false;
警报(vm.file);
警报(vm.text);
if(vm.file&&!vm.text)
{retVal=true}
else if(vm.text&&!vm.file)
{retVal=true}
else如果(!vm.text&&!vm.file)
{retVal=false}
else if(vm.text&&vm.file)
{retVal=false}
如果(!retVal){
警报(“请指定一个文件或文本,而不是同时指定两个!”)
}否则
警报(“正常”)
}
});
对不起,我没有注意到您正在使用typescript。我还没有真正跟上ts的速度。前几天我用下面的代码回答了一个类似的问题,但我现在找不到。请注意,ng模型和文件输入类型存在问题,因此它使用document.getElementById来确定文件。我怀疑这就是你遇到的问题
<html>
<body>
<form name="form" ng-app="app" ng-controller="Ctrl as ctrl">
Upload file:
<input type="file" id="file" ng-model="ctrl.file" />
<br/>
<br/> Enter text:
<textarea id="textarea" ng-model="ctrl.text"></textarea>
<br/>
<br/>
<button class="btn btn-primary btn-large" ng-click="ctrl.submitForm()">Submit</button>
</form>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js">
</script>
<script>
angular.module('app', []).controller('Ctrl', function() {
var vm = this;
vm.file = ""
vm.text = ""
vm.submitForm = function() {
// angular doesn't update the model for input type="file"
vm.file = document.getElementById('file').value;
var retVal = false ;
alert(vm.file);
alert(vm.text);
if (vm.file && ! vm.text)
{retVal = true}
else if (vm.text && ! vm.file)
{retVal = true}
else if (!vm.text && !vm.file)
{retVal = false}
else if (vm.text && vm.file)
{retVal = false}
if (!retVal) {
alert("Please specify either a file or text, not both!")
} else
alert("ok")
}
});
</script>
</html>
上载文件:
输入文本:
提交
角度.module('app',[]).controller('Ctrl',function(){
var vm=这个;
vm.file=“”
vm.text=“”
vm.submitForm=函数(){
//angular不更新输入类型=“文件”的模型
vm.file=document.getElementById('file').value;
var-retVal=false;
警报(vm.file);
警报(vm.text);
if(vm.file&&!vm.text)
{retVal=true}
else if(vm.text&&!vm.file)
{retVal=true}
else如果(!vm.text&&!vm.file)
{retVal=false}
else if(vm.text&&vm.file)
{retVal=false}
如果(!retVal){
警报(“请指定一个文件或文本,而不是同时指定两个!”)
}否则
警报(“正常”)
}
});
你能把这个放在密码笔里吗?好的。我还没用过,但我会试试的!代码笔真的很容易。当你完成后发布回复,这样我会得到通知,我会看一看。尝试此链接。请告诉我,如果你在访问链接时遇到任何问题。你能将此放在代码笔中吗?好的。我还没用过,但我会试试的!代码笔真的很容易。当你完成后发布回复,以便我得到通知,我会看一看。尝试此链接。如果你在访问此链接时遇到任何问题,请告诉我。此答案中还有一些好的解决方案:此答案中也有一些好的解决方案: