AngularJS是当前非常的流行的前端框架,它的语法糖非常多,也极大的方便了前端开发者,但是有着用法还是需要去琢磨一下的。
ng-options
在select表单控件中,总结一下目前的几种写法。
普通写法
<select> <option value="test1">test1</option> <option value="test1">test1</option> <option value="test1">test1</option> <option value="test1">test1</option> </select>
优点:简单
缺点:
使用ng-repeat
ng-repeat是angularJS中非常强大的一个directive,在渲染列表上极大的方便了前端开发者,那么由于有多个重复的option,当然可以使用ng-repeat,用法如下:
<select> <option ng-repeat="option in options" value="{{option}}">{{option.name}}</option> </select> <script> $scope.options = [{id:1,name:'test1'},{id:2,name:'test2'},{id:3,name:'test3'}]; </scirpt>
优点:
缺点:
使用ng-options
这里使用一个年级、班级的选项来作为例子:即选择年级之后再显示对应的可选班级。
<select ng-model="modal.grade" ng-change="modalChangeGrade()" ng-options="grade.gradeText for grade in modal.grades"> <option value="" disabled>请选择</option> </select> <script> $scope.modal.grades = [ {id:1,gradeText:'初一',classes:[]}, {id:2,gradeText:'初二',classes:[]}, {id:3,gradeText:'高一'},classes:[]]; $scope.modalChangeGrade = function(){ //班级的HTML片段就不在这里写了 $scope.modal.classes = $scope.modal.grade.classes; } </scirpt>
注:
“请选择"的option需要有value,不然会报错
如果要设置默认选择值,比如一开始就选择"高一",则需要设置modal在数组里的对象。
$scope.modal.grade = $scope.modal.grades[2];//高一在数组的位置角标为2
优点:
ng-checked
checkbox和radio是我们经常使用到的表单组件,那么如何使用angularJs简洁方便的获取当前已选择对象呢?
这里只说angularJs的用法:
下面依然以年级和班级为例:
<div ng-repeat="class in grade.classes" ng-click="class.is_checked=!class.is_checked"> <input type="checkbox" value="" ng-checked="class.is_checked"> {{class.id+'班'}} </div>
最后需要查看有哪些checkbox被选中时,只需要遍历$scope.grade.classes数组查看有哪些对象的is_checked属性为true即可。
radio的用法同理。
以上所述是小编给大家介绍的ng-options和ng-checked在表单中的高级运用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
问题内容: 在我的HTML页面中,我有两组基于布尔的单选按钮:分别标记为“是”和“否” /值:分别为 True 和 False 。我正在从PostgreSQL数据库表中填充完整的表单,以允许经过身份验证的用户查看包含填充数据的表单,并编辑包含单选按钮的填充字段,然后保存将数据保存到DB的表单。所有其他文本字段都可以毫无问题地填充;这都是单选按钮的集合我在单选按钮的预选标记方面遇到了问题。 以下内容
问题内容: 我希望解决三个问题… 在我的应用程序页面中,我有一个选择州,另一个选择县。对于州,我有: 数据: 对于我的县,请选择: 数据: 这是我的: 因此,如您所见,我在州选择上使用,在县选择上使用,在县数据集中已设置了相应的州ID 。 我想做几件事: 隐藏选择的县,直到选择了一个州。 选择州后,按选定的/ 过滤县选择选项 筛选由第一,然后由。 我还没有看到一个方法来设置到或过滤器由一个数字,而
问题内容: http://plnkr.co/edit/RP9SpO1qGjn5Ua6pZJ3D?p=preview js 和html 注意,根据半径范围结构检查了“ 2 Mile”无线电输入。为什么ng-change不触发功能? 如果我添加ng-model,则该函数会触发,但是ng-checked无法正常工作。 问题答案: 这是因为您没有使用: plnkr 更新: 很抱歉,我没有注意到您要检查默认
问题内容: 我有一个Person对象数组 我正在使用带有ng-options这样的select: 我想显示与记录 符合条件的:假 的 红 颜色。因此,问题是我如何使用in 才能实现此目的?因为我们没有使用任何标签,如果我只需添加它不会工作在元素本身。 问题答案: 您可以在处理ngOptions指令后创建一个处理选项的指令,以适当的类更新它们。 更新 :旧代码有一些错误,并且自回答这个问题以来,我学
问题内容: 我需要使用 关联数组 作为使用AngularJS的选项的数据源。 是否可以使用这样的数组? 并得到这样的东西: 我阅读了docs,但是我不明白如何实现这一目标。 问题答案: 用途: 或使用: 控制器中的数据:
问题内容: 我正在使用AngularJS,并且假设它可以工作(不起作用),我想获得的效果将类似于它将产生的效果。 视图 控制者 我意识到该代码将无法使用,因为它不可用,因为它将仅可用于每一行内的对象。该代码是为了让我了解正在尝试做的事情:即。我希望能够使用其类也基于条件的表行来创建,该条件取决于对行本身的范围功能的访问。。我意识到我 可以 在列上添加ng- class,但这很无聊。有人有更好的主意