Javascript AngularJS使用selectize和ng repeat设置多选下拉列表的值
通过这个例子()我可以实现纯html的select multiple 但是我使用的是选择插件Javascript AngularJS使用selectize和ng repeat设置多选下拉列表的值,javascript,html,angularjs,selectize.js,multiple-select,Javascript,Html,Angularjs,Selectize.js,Multiple Select,通过这个例子()我可以实现纯html的select multiple 但是我使用的是选择插件 对于下拉多选,我不知道如何填充已经选择的值 这是我尝试的HTML: <div ng-repeat="item in items"> <select multiple class="selectSkill" ng-model="item.storedArray" ng-options="opt.skillId as opt.skillName for opt in skills
对于下拉多选,我不知道如何填充已经选择的值 这是我尝试的HTML:
<div ng-repeat="item in items">
<select
multiple
class="selectSkill"
ng-model="item.storedArray"
ng-options="opt.skillId as opt.skillName for opt in skills"
></select>
</div>
我正在加载基于类的selectize(selectSkill
)
无填充正常负载正常工作,但我尝试使用selectize动态设置值
谢谢你的帮助
我的演示数据:
**$scope.skills**
将我创建的示例作为答案发布,因为它似乎对OP有所帮助 这里的建议是不要将Selectize与
ng model
和ng options
混用,因为如果应用于同一select
元素,它们在功能上会相互冲突
如果要使用Selectize,最好创建一个包装器(如我的示例中的指令),该包装器为需要它的select
元素提供初始化
另外,不要忘记,由于Selectize会导致AngularJS上下文之外的数据更改,因此您需要手动触发摘要(即scope.$apply()
),以确保AngularJS中的代码看到最新的数据
angular
.module('应用程序',[])
.controller('ctrl',函数($scope){
$scope.items=[
{storedArray:['078…']},
{storedArray:[]},
{storedArray:['0cc…']},
];
$scope.skills=[
{skillId:'078…',skillName:'Java'},
{skillId:'0cc…',skillName:'Cisco UCS'},
];
$scope.itemSelectizeOptions=$scope.items.map(函数(项){
返回{
valueField:'skillId',
labelField:“skillName”,
选项:$scope.skills,
items:item.storedArray,
onChange:函数(newItems){
item.storedArray=新项目;
//“$apply()”是必需的,因为更改发生在AngularJS所知之外
$scope.$apply();
}
};
})
})
.directive('selectize',函数(){
返回{
范围:{
selectize:“如果你要使用selectize.js
,你不应该将它与ng模型
和ng选项
混用,因为后者不起作用。下面是一个基于你的代码片段的最简单的工作示例-@miqh谢谢你,它起作用了。你能把链接作为我会接受的答案发布吗?”。
**$scope.skills**
**item.storedArray**