angular使用select时要注意的坑

一、错误使用产生的坑--留白

  公司前段时间要搞一个后台系统,为了快选了angular,在使用select标签的时候碰到一个小问题,首先我们先来看坑图,如图1所示。

angular使用select时要注意的坑

  如图所示,出现了留白,也就是当我们使用select和ng-repeat循环时候出现了一个留白,如代码所示

 <select name="rzstatus" ng-model="rzstatus">
<option ng-repeat=“a in aa” value="a">{{a.name}}</option>
</select>

  

  出现这个问题的原因是指令使用错误,因为在使用select标签的时候应该是在select标签中直接使用ng-options指令而不再是option标签中使用ng-repeat指令了,代码如下所示

<select id="type" ng-model="formData.type" ng-options="item.id as item.name for item in typeData">
</select>

  

  如此写代码,就会出现如图2所示的界面,完美的避开了留白一行。

  angular使用select时要注意的坑

  ng-options新鲜的指令,下面我们来看下他的语法item.id as item.name for item in items。拿这句当案例,从后往前出现了三个关键字分别是in、for和as,in大家很熟悉从一个数组中依次遍历每一项的标识符,而for指代的是html5中option标签中的值,as 标签的意思是option标签中的value所对应的值,若有如下代码:

item.id as item.name for item in items

 

  其实他等价于

<option value="item.id">item.name</option>

  如上对应关系我相信大家就秒懂了,在做后台系统的时候如想让当前选项和服务端保持一致,如编辑文章时文章的属性,可见我们只需要对应as前面的item.as属性即可,如果我们要在每种选项前面多加一个“请选择”的选项,这时候只需要单独添加一个option标签行就成,如下代码所示:

<select id="type" ng-model="type" ng-options="item.id as item.name for item in items">
  <option value=“-1”>请选择</option>
</select>

  

上一篇:HTML5学习笔记<三>: HTML5样式, 连接和表格


下一篇:Linux 终端访问 FTP 及 上传下载 文件[转]