ng选项的最后一个元素
Last element of ng-options
给定以下代码:
<select label="someSelect"
ng-model="someModel"
ng-options="p as p.bar group by p.foo for p in ps">
</select>
有没有办法知道什么时候用相应的选项值填充了选择?
我知道这可以在ng-repeat
指令中实现,创建一个自定义指令并检查scope.$last
属性,但在这种情况下似乎不起作用。
这背后的想法是,我希望能够使用Select2插件(http://ivaynberg.github.io/select2/)。由于someModel
与所提供选项的任何值都不匹配,因此ng-options
默认情况下会添加一个额外的<option value="?"></option>
(正如Joseph已经指出的)。一个可能的解决方案可能是使用有效值初始化控制器中的此作用域属性(someModel
),但提供的数据(在本例中为ps
)可能为空,因此不可能有初始化值。
我的第一种方法是知道选择渲染何时完成,这样我就可以删除额外的选项值,并随着模型的变化一次又一次地正确初始化selext框。
这真的可能吗?有更好的方法来实现这一点吗?
我可能错了,但我认为你想要的是这样的东西:
使用select2的指令(经验法则:当你想集成外部插件时,总是使用指令):
.directive('select2', function($timeout) {
return {
restrict: 'A',
link : function (scope, element, attrs ) {
$timeout(function(){element.select2();});
}
};
});
您的HTML:
<select
ng-init="studentSelected=students[0]"
ng-model="studentSelected"
ng-options="student.name group by student.class for student in students"
select2>
</select>
示例
此外,值得一提的是,由于您使用的是需要jQuery
的select2
,因此您在指令中收到的element
不是jqLite
对象,而是jQuery
对象,这就是为什么您可以在指令中执行element.select2()
。
相关文章:
- 表追加而不附加最后一个元素
- 使用querySelector()获取最后一个td元素
- 如何查找流星集合中最后一个元素/对象的id
- 如何在使用Protractor测试时找到ng中继器的最后一个元素
- 在元素数组上循环只会影响最后一个元素
- 推特引导滚动间谍总是选择最后一个元素
- 选择页面上具有特定类的最后一个元素
- 检查 JQuery 每个函数中的最后一个元素
- 保持元素可滚动,直到到达最后一个内容
- 选择表中的最后一个元素
- forEach 仅执行数组的最后一个元素
- JavaScript,数组和函数 - 只有数组的最后一个元素有效
- 插件总是只得到最后一个实例,如何让它适用于多个元素
- jQuery - 选择具有相同 ID 的组的最后一个元素
- 第一个元素和最后一个元素之间的连续循环
- 更改元素HTML,但忽略最后一个子项
- 除了最后一个<td>元素-Jquery
- 在JavaScript数组中查找最后一个元素的计算效率最高的方法
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- 如何在jquery中读取Section中的最后一个元素