gpt4 book ai didi

javascript - 动态更新和检查对象数组

转载 作者:行者123 更新时间:2023-11-28 00:00:56 25 4
gpt4 key购买 nike

所以我有一个回调函数,它从 dom 返回一个数据对象(有一个项目列表,每次选择一个项目时,它都会将其作为对象返回)。这是回调函数:

$scope.fClick = function( data ) {                 
$scope.x = data;
}

当您从下拉列表中选择一个项目时,从 fClick 返回的对象如下所示:{ name: "English", ticked: true }

当您从下拉列表中取消选择它时,它将返回如下内容:

{ name: "English", 勾选: false }

现在我保留一个类似于 $scope.output 的数组来维护返回对象的列表。但是,我想要做的是仅当输出中不存在具有相同属性“名称”值的对象时,将从scope.fClick 返回的对象添加到 $scope.output 。因此,现在在我的实现中, { name: "English", ticked: false }{ name: "English", ticked: true } 都添加到数组中。相反,我希望它更新勾选的属性。因此,例如,如果 $scope.output = { name: "English", ticked: false } ,然后scope.fClick 返回 { name: "English", ticked: true}。当我将此值推送到 $scope.output 时,我希望它更新现有对象的 tick 属性,因此 $scope.output = { name: "English", ticked: false } 变为 $ scope.output = { name: "English", 勾选: true }

这是我尝试过的:

$scope.fClick = function( data ) {                 
$scope.x = data;
}
$scope.$watch(function () {
return $scope.y = $scope.x;
},function (newValue, oldValue) {
var id = $scope.output.indexOf(newValue);
if(id === -1){
$scope.output.push(newValue);
}
else {
$scope.output[id].tick = newValue.tick;
}
console.log($scope.output);

},true);

我该如何完成这项工作?

最佳答案

设置和获取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.marks= [
{ name: 'Mark I', value: 'Mark i', text: 'This is Mark 1', ticked: true },
{ name: 'Mark II', value: 'Mark ii', text: 'This is Mark 2' },
{ name: 'Mark III', value: 'Mark iii', text: 'This is Mark 3' }
];

获取所选项目(更改时)

$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.marks.map(function (item) {
if (item.value == "")
item.ticked = true;
else
item.ticked = false
});

关于javascript - 动态更新和检查对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31820381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com