欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【angularjs在ng-repeat中使用ng-model遇到的问题】,下面是详细的讲解!
angularjs在ng-repeat中使用ng-model遇到的问题
在ng-repeat中使用ng-model时会有许多问题,有的人碰到无法获取绑定的数据内容,有的人遇到改动绑定的数据内容时所有循环生成的内容一起改变。上面的问题我在开发时也遇到过,但是解决后我却怎么也还原不了那种情况了,只能先简单介绍一下无法获取的情景该如何解决。
例如:
html:
<body>
<div ng-controller="selectController">
<div ng-repeat="pop in citylist">
<select ng-model="p">
<option value="" style="display:none;">{{pop.pop}}</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="广州">广州</option>
</select>
<button ng-click="cs()">ceshi</button>
</div>
</div>
</body>
js:
<script>
var app=angular.module('app', []);
app.controller('selectController', function ($scope) {
$scope.citylist=[{id:1,pop:"北京"},{id:1,pop:"上海"},{id:1,pop:"广州"}];
$scope.cs=function(){
console.log($scope.p);
}
})
</script>
很简单的功能,想要在点击更改按钮时获取select当前选中的数据内容,但是你会发现这样写只能得到undefined,此时有的人会提出可以将p赋予成为一个对象,通过key:value的方式来保存每一次的选择
$scope.p={};
这样确实没问题,但是会有一个新的问题那就是只要改动了一项,那么所有的内容都会跟着一起改变,那么有没有更好的方法呢?
只要一个小小的改动
html:
<button ng-click="cs(p)">ceshi</button>
js:
$scope.cs=function(p){
console.log(p);
}
这只是个简单的例子,如大家在实际使用时发现有别的问题也可以在评论中留言。
关于angularjs在ng-repeat中使用ng-model遇到的问题的用户互动如下:
相关问题:有关angularjs中ng-repeat循环中ng-model的问题,...
答:Texeure是在全局scope下面的,而repeat里面有自己的scope,这个scope“继承”全局的scope。 input的model应该使用repeat里的scope有效的变量。 >>详细
相关问题:angularjs的ng-repeat循环列表中序号怎么写
答:直接上代码,一看就懂了: 序号 昵称 性别 年龄 星座 关注时间 1 郑州网建 男 32 白羊座 2014-09-02 00:00 $index是从0开始计数的,所以,这里,我们+1 >>详细
相关问题:angularjs的问题 用ng-repeat读不出数据
答:换成 http://www.apjs.net/ 中文官网的angular之后可以运行起来,不知道是不是你的js有问题,或者是版本问题。 >>详细
- 【Ajax】jQuery 学习第六课 实现一个Ajax的TreeVi
- 【extjs】extjs每个组件要设置唯一的ID否则会出错
- 【bootstrap3】基于bootstrap3和jquery的分页插件
- 【hover】jQuery控制图片的hover效果(smartRollo
- 【div】div浮层 滚动条移动 位置保持不变的4种方
- 【Cookie】Cookie 小记
- 【arguments】JavaScript的arguments对象应用示例
- 【ECMAScript5】ECMAScript5中的对象存取器属性:
- 【function】JavaScript function 的 length 属性
- 【ExtJs】ExtJs动态生成treepanel的Json格式-tree
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
