Angularjs 和 UI-Select:如何从代码中 select 一个选项
Angularjs and UI-Select: how to select an option from code
在 angularjs 我有一个 ui-select
:
<ui-select ng-model="itemSelected.selected" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="Select an item...">{{$select.selected.Name}}</ui-select-match>
<ui-select-choices repeat="item in itemsList">
<span ng-bind-html="item.Name"></span>
</ui-select-choices>
</ui-select>
如何在加载页面时从代码中 select 项目?
当我在控制器中加载页面时,我得到 $scope.itemsList
:我如何 select 来自 controller
的特定项目?
谢谢
您可以在控制器加载时自行设置
标记
<body ng-controller="DemoCtrl">
<p>Selected: {{item.selected}}</p>
<ui-select ng-model="item.selected" theme="select2" ng-disabled="disabled" style="min-width: 300px;">
<ui-select-match placeholder="Select a item in the list">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in items | propsFilter: {name: $select.search, age: $select.search}">
<div ng-bind-html="item.Code | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
</body>
代码
app.controller('DemoCtrl', function($scope, $http) {
$scope.disabled = undefined;
$scope.clear = function() {
$scope.item.selected = undefined;
};
$scope.item = {};
$scope.items = [
{ name: 'Item1', Code: 'Code1', },
{ name: 'Item2', Code: 'Code3'},
{ name: 'Item3', Code: 'Code4'},
{ name: 'Item4', Code: 'Code4' },
{ name: 'Item5', Code: 'Code5' },
];
$scope.item.selected = $scope.items[0] //here you can set the item selected
});
@Pankaj Parkar 的 plunkr 不再适用于预期用途,所以我分叉它并让它在此处工作:
http://plnkr.co/edit/Y6cdgJQ3YPq7Ncb3bT4A?p=preview
关键变化涉及在控制器中实际设置所选项目:
$scope.address = {};
$scope.refreshAddresses = function(address) {
var params = {address: address, sensor: false};
return $http.get(
'http://maps.googleapis.com/maps/api/geocode/json',
{params: params}
).then(function(response) {
$scope.addresses = response.data.results
$scope.address.selected = $scope.addresses[0];
$scope.$apply();
});
};
$scope.refreshAddresses('New York, NY');
关键的添加是 $scope.address.selected = $scope.addresses[0];
和 $scope.refreshAddresses('New York, NY');
才能开始。
我还更新了其他选择以预填充。
在 angularjs 我有一个 ui-select
:
<ui-select ng-model="itemSelected.selected" theme="selectize" ng-disabled="disabled">
<ui-select-match placeholder="Select an item...">{{$select.selected.Name}}</ui-select-match>
<ui-select-choices repeat="item in itemsList">
<span ng-bind-html="item.Name"></span>
</ui-select-choices>
</ui-select>
如何在加载页面时从代码中 select 项目?
当我在控制器中加载页面时,我得到 $scope.itemsList
:我如何 select 来自 controller
的特定项目?
谢谢
您可以在控制器加载时自行设置
标记
<body ng-controller="DemoCtrl">
<p>Selected: {{item.selected}}</p>
<ui-select ng-model="item.selected" theme="select2" ng-disabled="disabled" style="min-width: 300px;">
<ui-select-match placeholder="Select a item in the list">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="item in items | propsFilter: {name: $select.search, age: $select.search}">
<div ng-bind-html="item.Code | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
</body>
代码
app.controller('DemoCtrl', function($scope, $http) {
$scope.disabled = undefined;
$scope.clear = function() {
$scope.item.selected = undefined;
};
$scope.item = {};
$scope.items = [
{ name: 'Item1', Code: 'Code1', },
{ name: 'Item2', Code: 'Code3'},
{ name: 'Item3', Code: 'Code4'},
{ name: 'Item4', Code: 'Code4' },
{ name: 'Item5', Code: 'Code5' },
];
$scope.item.selected = $scope.items[0] //here you can set the item selected
});
@Pankaj Parkar 的 plunkr 不再适用于预期用途,所以我分叉它并让它在此处工作:
http://plnkr.co/edit/Y6cdgJQ3YPq7Ncb3bT4A?p=preview
关键变化涉及在控制器中实际设置所选项目:
$scope.address = {};
$scope.refreshAddresses = function(address) {
var params = {address: address, sensor: false};
return $http.get(
'http://maps.googleapis.com/maps/api/geocode/json',
{params: params}
).then(function(response) {
$scope.addresses = response.data.results
$scope.address.selected = $scope.addresses[0];
$scope.$apply();
});
};
$scope.refreshAddresses('New York, NY');
关键的添加是 $scope.address.selected = $scope.addresses[0];
和 $scope.refreshAddresses('New York, NY');
才能开始。
我还更新了其他选择以预填充。