Angularjs 在角度js的multi-select isteven中设置值
我正在尝试在我的项目中使用Angularjs multi-select 下面的html是我的multi-select divAngularjs 在角度js的multi-select isteven中设置值,angularjs,angularjs-directive,multi-select,Angularjs,Angularjs Directive,Multi Select,我正在尝试在我的项目中使用Angularjs multi-select 下面的html是我的multi-select div <div multi-select input-model="marks" output-model="filters.marks" button-label="name" item-label="
<div
multi-select
input-model="marks"
output-model="filters.marks"
button-label="name"
item-label="name"
tick-property="ticked"
selection-mode="multiple"
helper-elements="all none filter"
on-item-click="fClick( data )"
default-label="Select marks"
max-labels="1"
max-height="250px"
>
</div>
我知道我可以在控制器中使用$scope.marks=数据
但问题是$scope.marks是一个全局变量,我无法更改
有没有办法在不使用输入模型的情况下设置multi-select中的值?好吧,在这里做一些测试,我可以通过multi-select获得一些信息: var语言= [C,java,Ruby,Go,C++,Pascal,汇编];这些项目。 var myApp=angular.module'myApp',[]; myApp.controller'MyCtrl',函数$scope{ $scope.marks={}; 语言中的朗{ $scope.marks[lang]={ 名称:语言[lang], 标记:假 }; } $Simult.Mark(3)。标记为true;//Mark Go和C++默认。 $scope.marks[4]。marked=true; $scope.theMarkedOnes=函数{ 输出=; 对于$scope.marks中的m{ 如果$scope.marks[m].marked outp+=$scope.marks[m].name+; } 如果outp.length==0{ 不返回任何值; }否则{ 返回outp.substr0,outp.length-2; } } $scope.setMark=functionmarkone{ markone.marked=!markone.marked; } } *, *:之前, *:之后{ 框大小:边框框; } 身体{ 字体系列:无衬线; 字体大小:0.7em; } :-webkit滚动条{ 宽度:7px; } :-webkit滚动条轨迹{ -webkit盒阴影:插入0 0 6px rgba0,0,0,0.3; 边界半径:10px; } :-webkit滚动条拇指{ 边界半径:10px; -webkit盒阴影:插入0 0 6px rgba0,0,0,0.5; } .多选{ 背景色:中交; 溢出y:滚动; 宽度:17em; 高度:13公分; 边界半径:0.7em; } .多选项{ 光标:指针; 填充:0.2em 0.3em 0.2em 0.0em; } .itemtrue{ 背景色:9999AA; } msshow先生{ 背景色:中交; 边界半径:0.7em; 边缘顶部:1米; 填充:0.6em; 宽度:17em; } {{mark.name} 所选:{{theMarkedOnes}
设置并获取Angularjs isteven multi-select的选定值、名称和文本
<div isteven-multi-select
input-model="marks"
output-model="filters.marks"
button-label="name"
item-label="name"
tick-property="ticked"
selection-mode="multiple"
helper-elements="all none filter"
on-item-click="fClick( data )"
default-label="Select marks"
max-labels="1"
max-height="250px">
</div>
更改时获取所选项目
$scope.fClick = function (data) {
console.log(data.name);
console.log(data.value);
console.log(data.text);
return;
}
选择带有代码的项目
$scope.abc = function (data) {
console.log(data.element1, data.element2);
angular.forEach($scope.marks, function (item) {
if (item.value == data.element1) {
item.ticked = true;
}
else {
item.ticked = false;
}
});
}
取消选择项目清除
$scope.ClearClick = function () {
$scope.Filter = { selectMarks: 'Mark i' };
$scope.marks.map(function (item) {
if ($scope.Filter.selectMarks == item.value)
item.ticked = true;
else
item.ticked = false;
});
}
你能再澄清一点吗?马克应该来自哪里?为什么您不能更改它?@Esteban$scope.marks是我控制器中的一个全局变量。但是我想在我的控制器中动态设置multi-select的值。但是如果我在控制器中动态设置它,原始全局变量将被重新设置谢谢您的答案。但是我的项目已经在使用multi-select,我不应该更改它。
$scope.ClearClick = function () {
$scope.Filter = { selectMarks: 'Mark i' };
$scope.marks.map(function (item) {
if ($scope.Filter.selectMarks == item.value)
item.ticked = true;
else
item.ticked = false;
});
}