angular ui-select2 未在编辑模式下设置值
angular ui-select2 not set value in edit mode
<select id="e1" style="width:100%" ui-select2 tabindex="-1" ng-init="GetAllAgent()" ng-model="Agent" ng-options="ctr as ctr.AgentName for ctr in ListAgent track by ctr.AgentId" ng-change="GetSubAgentList(Agent.AgentId)">
<option value=""> </option></select>
当处于编辑模式时,无法使用以下代码设置默认值
angular.forEach($scope.ListAgent, function (value, index) {
if (value.AgentId == HR.AgentId) {
$scope.Agent = $scope.ListAgent[index];
}
})
$scope.ListAgent= [{ AgentId: "0", AgentName:"Ann" }, { AgentId: "1", AgentName:"Muh" }];
和
HR.AgentId=1
首先,ui-select2
不支持ng-options
:https://github.com/angular-ui/ui-select2/issues/252
此外,ui-select2
不适用于 ng-repeat
:https://github.com/angular-ui/ui-select2/issues/162
解决方法是使用input
:
<input ui-select2="select2Options" ng-model="Agent"/>
其中 select2Options
是:
$scope.select2Options = {
data:$scope.ListAgent
}
列表应具有结构:[{id,text}]
所以 $scope.ListAgent
将是
$scope.ListAgent= [{ id:0, text:"Ann" }, { id:1, text:"Muh" }];
对于占位符添加 data-placeholder="----"
<select id="e1" style="width:100%" ui-select2 tabindex="-1" ng-init="GetAllAgent()" ng-model="Agent" ng-options="ctr as ctr.AgentName for ctr in ListAgent track by ctr.AgentId" ng-change="GetSubAgentList(Agent.AgentId)">
<option value=""> </option></select>
当处于编辑模式时,无法使用以下代码设置默认值
angular.forEach($scope.ListAgent, function (value, index) {
if (value.AgentId == HR.AgentId) {
$scope.Agent = $scope.ListAgent[index];
}
})
$scope.ListAgent= [{ AgentId: "0", AgentName:"Ann" }, { AgentId: "1", AgentName:"Muh" }];
和
HR.AgentId=1
首先,ui-select2
不支持ng-options
:https://github.com/angular-ui/ui-select2/issues/252
此外,ui-select2
不适用于 ng-repeat
:https://github.com/angular-ui/ui-select2/issues/162
解决方法是使用input
:
<input ui-select2="select2Options" ng-model="Agent"/>
其中 select2Options
是:
$scope.select2Options = {
data:$scope.ListAgent
}
列表应具有结构:[{id,text}]
所以 $scope.ListAgent
将是
$scope.ListAgent= [{ id:0, text:"Ann" }, { id:1, text:"Muh" }];
对于占位符添加 data-placeholder="----"