ng-show和ng-if的区别

第一点区别是, 
ng-if 在后面表达式为 true 的时候才建立这个 dom 节点, 
ng-show 是初始时就建立了,用display:block 和 display:none 来控制显示和不显示。
html


第二点区别是, 
ng-if 会(隐式地)产生新做用域,ng-switch 、 ng-include 等会动态建立一块界面的也是如此。 
这样会致使,在 ng-if 中用基本变量绑定 ng-model,并在外层 div 中把此 model 绑定给另外一个显示区域,内层改变时,外层不会同步改变,由于此时已是两个变量了。
app

 

针对第二点,若是想传递给外层的model,则在ng-if的ng-model中加一个$parent便可,以下:dom

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>

<body>

<div ng-app="myApp" ng-controller="myCtrl">
	“父级”环境
	<input type="text" ng-model="parentVal"><br><br><br><br>
	<div ng-if="parentVal == 'a'" style="border:1px solid #ccc;width:200px;height:200px;margin:20px">
		"子"环境
		<input type="text" ng-model="childVal"></br>
		内层显示ng-if的model: {{childVal}}
	</div>
	
	在外层显示ng-if中的model: {{childVal}}
	

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    
});
</script>

</body>
</html>

  

 

参考网址:http://blog.csdn.net/sinat_31057219/article/details/60780479spa

相关文章
相关标签/搜索