我有一个可以隐藏或显示一些div的小脚本。每个div都包含一个文件输入。
我的问题是,当隐藏div时,所选文件消失了,为什么会这样?
以下是一个示例(http://jsfiddle.net/etiennenoel/8k4M7/):
<!DOCTYPE html>
<html ng-app>
<head>
<script data-require="angular.js@*" data-semver="1.2.13" src="http://code.angularjs.org/1.2.13/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<h1>Hello Plunker!</h1>
<div ng-if="test == true">
<input type="file">
</div>
<button ng-click="test = !test">test</button>
</body>
</html>
首先,您必须单击测试按钮。
其次,您选择一个文件。
第三,你点击两次测试按钮。
您会看到所选文件现已消失,为什么?我真的必须为此创建一个指令吗?这意味着我会将文件保存在某处?
答案 0 :(得分:4)
所选文件已消失,因为如果ng-if
的条件求值为false
,则该元素的所有内容都将从DOM中删除。当条件为true
时,内容将重新插入,因此会丢失其先前的状态。
您可以使用ng-show
。它不会从DOM中删除内容。
这是小提琴: http://jsfiddle.net/3fgLx/