Angularjs 在角度js的multi-select isteven中设置值

Angularjs 在角度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="

我正在尝试在我的项目中使用Angularjs multi-select

下面的html是我的multi-select div

<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;
    });
}