Angular中ng-model在select中的使用你理解了吗?

在工作中对于ng-model在select中到底绑定的内容是什么?一致处于混沌状态今天终于有时间把玩了一下,下面听我娓娓道来,当然如果您对这里门清请绕行。再次感谢菜鸟教程的丰富资源。

使用场景一

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">

<select ng-init="selectedName = names[0]" ng-model="selectedName" ng-options="x for x in names">
</select>
<p>ng-model绑定的值为:{{selectedName}}<p>
</div>

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

<p>如果数据源为一个数组此时绑定的就是数组中的各项,注意ng-options可以默认选中第一项</p>

</body>
</html>

使用场景二:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"></script>
	<style type="text/css">
			h1{
				color:red;
			}
		</style>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">

<p>选择网站:</p>

<select ng-model="selectedSite" ng-options="x.site for x in sites">
</select>

<h1>你选择的是: {{selectedSite.site}}</h1>
<p>网址为: {{selectedSite.url}}</p>
<h1>ng-model绑定的selectedSite的值为:{{selectedSite}}</h1>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
   $scope.sites = [
	    {site : "Google", url : "http://www.google.com"},
	    {site : "Runoob", url : "http://www.runoob.com"},
	    {site : "Taobao", url : "http://www.taobao.com"}
	];
});
</script>

<p>该实例演示了使用 ng-options  指令来创建下拉列表,选中的值是一个对象。</p>
</body>
</html>

 

使用场景三:在场景二的基础上对代码的ng-options稍加修改你会发现输出的结果竟然不一样了,此时选中的为url的值,不再是一个对象

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"></script>
	<style type="text/css">
			h1{
				color:red;
			}
		</style>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">

<p>选择网站:</p>

<select ng-model="selectedSite" ng-options="x.url as x.site for x in sites">
</select>

<h1>你选择的是: {{selectedSite.site}}</h1>
<p>网址为: {{selectedSite.url}}</p>
<h1>ng-model绑定的selectedSite的值为:{{selectedSite}}</h1>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
   $scope.sites = [
	    {site : "Google", url : "http://www.google.com"},
	    {site : "Runoob", url : "http://www.runoob.com"},
	    {site : "Taobao", url : "http://www.taobao.com"}
	];
});
</script>


</body>
</html>

 

使用场景四:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">

<p>选择网站:</p>

<select ng-model="selectedSite">
<option ng-repeat="x in sites" value="{{x.url}}">{{x.site}}</option>
</select>

<h1>你选择的是: {{selectedSite}}</h1>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
   $scope.sites = [
	    {site : "Google", url : "http://www.google.com"},
	    {site : "Runoob", url : "http://www.runoob.com"},
	    {site : "Taobao", url : "http://www.taobao.com"}
	];
});
</script>

<p>该实例演示了使用 ng-repeat 指令来创建下拉列表,选中的值是一个字符串。</p>
</body>
</html>

 

总结:1.工作中还是要处处留心,多总结和思考。通过今天的例子我们不仅明白了ng-model的用法,也了解了ng-options和ng-repeat的区别。

2.我们一致认为ng-options绑定的是一个对象(使用场景二),其实只要改变写法,你会发现结果大不一样(使用场景三)。

3.目前还是认为ng-repeat绑定的是一个字符串,如果您有不同意见请留言。

猜你喜欢

转载自blog.csdn.net/qq_36818627/article/details/81121778