Javascript AngularJS ui select,如何初始化multiselect值?
解决方案: 我自己解决了这个问题:在应用并完成我的ui选择自定义构建之后,整个问题不再是问题了。我希望这会很快进入官方的大师级分支 问题 如何使用多个值初始化select?我正在尝试此操作,但它不会在选择中显示所选项目 首先,我认为它与我通过HTTP get异步获取的数据有关,但甚至与我为证明这个问题对我有效而制作的“静态”plunker示例无关 我认为我的问题是数据来自两个不同的来源,因此两个数组之间的索引和引用不匹配。类别列表与服务一起获取,所选类别来自另一个服务,该服务与附加到它们的数据集一起返回。在另一个select中,仅仅从庞大的列表中选择所选的用户就加载所有45k用户是非常不切实际的 那么,如何使现有的选择数据显示在选择ui中呢 HTML “初始化”Javascript AngularJS ui select,如何初始化multiselect值?,javascript,angularjs,select,angular-ui,Javascript,Angularjs,Select,Angular Ui,解决方案: 我自己解决了这个问题:在应用并完成我的ui选择自定义构建之后,整个问题不再是问题了。我希望这会很快进入官方的大师级分支 问题 如何使用多个值初始化select?我正在尝试此操作,但它不会在选择中显示所选项目 首先,我认为它与我通过HTTP get异步获取的数据有关,但甚至与我为证明这个问题对我有效而制作的“静态”plunker示例无关 我认为我的问题是数据来自两个不同的来源,因此两个数组之间的索引和引用不匹配。类别列表与服务一起获取,所选类别来自另一个服务,该服务与附加到它们的数据集
select
或ui select
或任何其他ng model
类型输入的方法是,将进入ng model
的ViewModel变量设置为所选值或对象(本例中为)所需的任何值或对象
在您的示例中,您试图这样做,但由于您正在选择一个对象,因此您的VM应该引用同一个对象(通过引用)。您的错误是创建了具有相同内容的不同对象
因此,$scope.categories.selected
应该是实际对象的数组(因为它是多个):
简言之,你是在告诉我将索引整数传递给该数组,而不是整个对象?嗯,这给我带来了一些其他问题。除了通过数组索引,还有什么方法可以跟踪选择?没有,我告诉你通过引用传递对象;i、 e.对象本身。选择将是实际对象,而不是数组索引。我的问题是,数据来自两个不同的来源,因此索引和您建议的引用不匹配。类别列表与服务一起获取,所选类别来自另一个服务,该服务与附加到它们的数据集一起返回。在另一个选择中,加载所有45k用户只是从庞大的列表中选择所选用户是非常不切实际的。这很好地描述了我的问题,根据这一点,仍然不起作用。我不理解你的问题<代码>ng型号始终指实际选择-无论是由控制器设置还是由
用户界面选择
设置。如果您选择的记录来自不同的地方,则在从服务器收到的数据集中查找它们引用的实际对象,并将selected
数组设置为这些对象。如果不想选择对象,请改为选择id
s
<body ng-controller="MainCtrl">
<label>Assigned Categories</label>
<ui-select
multiple
ng-model="categories.selected"
on-select="selectCategory($item, $model)"
on-remove="deselectCategory($item, $model)">
<ui-select-match placeholder="Select Category...">{{$item.name}}</ui-select-match>
<ui-select-choices
repeat="category in categories.categories track by category.id">
{{category.name}}
</ui-select-choices>
</ui-select>
<pre>{{categories | json}}</pre>
</body>
var app = angular.module('plunker', [
'ui.select'
]);
app.controller('MainCtrl', function($scope) {
$scope.categories = {
selected: [
{
"id": "1",
"name": "Foo"
}
],
categories: [
{
"id": "1",
"name": "Foo 1"
},
{
"id": "2",
"name": "Bar 2"
},
{
"id": "3",
"name": "FooBar 3"
}
]
};
});
$scope.categories = {
categories: [
{
"id": "1",
"name": "Foo 1"
},
{
"id": "2",
"name": "Bar 2"
},
{
"id": "3",
"name": "FooBar 3"
}
]
};
$scope.categories.selected = [$scope.categories.categories[0]];