ngf-select 是做什么的,为什么需要它来进行表单验证?

What does ngf-select do and why is it needed for form validation?

我是AngularJS菜鸟。我试图实现一个表单,它需要填写所有输入字段,包括文件上传输入。

与第一个例子完全一样: https://angular-file-upload.appspot.com/

所以我创建了一个简单的表格来测试它:

<form name="myForm">
        <input id="userUpload" ng-model="filename" name="userUpload" required type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
        <input id="userName" ng-model="username" name="name" required type="text" />
        <button ng-disabled="myForm.$invalid" class="btn btn-primary">Ok</button>
    </form>

但是这不起作用。确定按钮将永远保持禁用状态。我发现如果我将属性 ngf-select="" 添加到文件输入字段:

<input id="userUpload" ng-model="filename" name="userUpload" required ngf-select="" type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />

然后表单按预期工作。当 userNameuserUpload 输入字段都已填写时,确定按钮将启用。我尝试使用谷歌搜索 ngf-select 但找不到满意的答案。它的作用是什么?为什么表单必须按预期运行?

输入文件有问题angular看下一个fiddle对你有帮助

jsFiddle

在主控制器中放置这个,将当前范围赋予原型范围:

MyCtrl.prototype.$scope = $scope;

只包含这个原型函数后

MyCtrl.prototype.setFile = function(element) {
var $scope = this.$scope;
$scope.$apply(function() {
    $scope.filename = element.files[0];
});
};

现在您可以在输入文件上调用

onchange="MyCtrl.prototype.setFile(this)"

它会在更新表单验证后用 will 更新范围 :)

ngf-select 是一个文件上传指令 它定义了当您 select 文件时会发生什么。

您可以添加要使用 ngf-select 作为 ngf-select="uploadFunction($file)" 执行的文件上传逻辑功能,这将确保文件在用户 selected 后自动上传计算机,您不必单击上传按钮。

ngf-select 基本上定义了当您 select 来自计算机的文件时发生的情况。