Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS使用selectize和ng repeat设置多选下拉列表的值_Javascript_Html_Angularjs_Selectize.js_Multiple Select - Fatal编程技术网

Javascript AngularJS使用selectize和ng repeat设置多选下拉列表的值

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的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"
></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**