以编程方式 selected 选项未在 ui-select 中突出显示
programmatically selected option is not highlighted in ui-select
angular版本:AngularJSv1.3.6
http://github.com/angular-ui/ui-select:版本:0.8.3
var p1 = { 姓名:'Ramesh',电子邮件:'Ramesh@email.com',年龄:99 };
$scope.people = [
{ name: 'Amalie', email: 'amalie@email.com', age: 12 },
{ name: 'Wladimir', email: 'wladimir@email.com', age: 30 },
{ name: 'Samantha', email: 'samantha@email.com', age: 31 },
{ name: 'Estefanía', email: 'estefanía@email.com', age: 16 },
{ name: 'Natasha', email: 'natasha@email.com', age: 54 },
{ name: 'Adrian', email: 'adrian@email.com', age: 21 },
p1
];
$scope.people.selected = p1 ;
html:
<ui-select class="full-width-select select" ng-model="people.selected" theme="select2">
<ui-select-match allow-clear="false">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="person in people | filter:$select.search">
<div ng-bind-html="person.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
问题是当 p1 select以编程方式编辑
p1 对象未在 ui-select 下拉列表中突出显示。
输出为:
http://plnkr.co/edit/3mrECwGJbz2UYcrDiCha?p=preview
这是由于 AngularJS 1.3.1 中的以下更改:
$observe: check if the attribute is undefined
Ui-select 使用 $observe
为 resetSearchInput
设置默认值:
attrs.$observe('resetSearchInput', function() {
var resetSearchInput = scope.$eval(attrs.resetSearchInput);
$select.resetSearchInput = resetSearchInput !== undefined ? resetSearchInput : true;
});
但是由于上面提到的更改以及 resetSearchInput
未定义,因此永远不会执行观察者函数。
现在要解决它,请将以下属性添加到您的 ui-select 元素:
reset-search-input="'false'"
angular版本:AngularJSv1.3.6 http://github.com/angular-ui/ui-select:版本:0.8.3
var p1 = { 姓名:'Ramesh',电子邮件:'Ramesh@email.com',年龄:99 };
$scope.people = [
{ name: 'Amalie', email: 'amalie@email.com', age: 12 },
{ name: 'Wladimir', email: 'wladimir@email.com', age: 30 },
{ name: 'Samantha', email: 'samantha@email.com', age: 31 },
{ name: 'Estefanía', email: 'estefanía@email.com', age: 16 },
{ name: 'Natasha', email: 'natasha@email.com', age: 54 },
{ name: 'Adrian', email: 'adrian@email.com', age: 21 },
p1
];
$scope.people.selected = p1 ;
html:
<ui-select class="full-width-select select" ng-model="people.selected" theme="select2">
<ui-select-match allow-clear="false">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="person in people | filter:$select.search">
<div ng-bind-html="person.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
问题是当 p1 select以编程方式编辑
p1 对象未在 ui-select 下拉列表中突出显示。
输出为:
http://plnkr.co/edit/3mrECwGJbz2UYcrDiCha?p=preview
这是由于 AngularJS 1.3.1 中的以下更改:
$observe: check if the attribute is undefined
Ui-select 使用 $observe
为 resetSearchInput
设置默认值:
attrs.$observe('resetSearchInput', function() {
var resetSearchInput = scope.$eval(attrs.resetSearchInput);
$select.resetSearchInput = resetSearchInput !== undefined ? resetSearchInput : true;
});
但是由于上面提到的更改以及 resetSearchInput
未定义,因此永远不会执行观察者函数。
现在要解决它,请将以下属性添加到您的 ui-select 元素:
reset-search-input="'false'"