如何在 Angular 中保存 multi select 中的选项?
How can I save a option from multi select in Angular?
我有一个带有单个 select 的模态,称为“Impacto OEE”,它有 3 个选项“Queda de Disponibilidade”、“Queda de Performance”和“Nenhum”。如果用户选择的选项是“Queda de Disponibilidade”,它将被保存为“Disponibilidade”,如果是“Queda de Performance”,它将被保存为“Performance”,如果是“Nenhum”,它将被保存为“Nenhum”。但是当我点击注册时,它只保存为“Disponibilidade”或“Nenhum”。在我的数据库 (PostgreSQL) 中,该列被称为“impact_oee”作为 ENUM,其值为“Disponibilidade、”Performance、“Nenhum”。
我是 Angular 的新手,但我不明白我应该怎么做才能使其正常工作,或者我做错了什么。下面是部分代码。有人可以帮助我吗?
这是我在 HTML 中的代码:
<div class="input-group">
<isteven-multi-select directive-id="impactos" tabindex="4" class="multiselect" helper-elements="filter"
translation="traducaoMultiSelect"
input-model="impactos"
output-model="impacto"
button-label="name"
item-label="name"
tick-property="ticked"
ng-class="{'open':impactosOpen }"
on-open="impactosOpen = true"
on-close="impactosOpen = false"
selection-mode="single" />
</div>
多选配置:
$scope.impactos = [{ name: "Queda de Disponibilidade" }, { name: "Queda de Performance" }, { name: "Nenhum" }]
从我的服务器哪里获取数据:
new Promise(function (resolve, reject) {
restApi.motivosParadaGerenciamento.query({}, function (array) {
$scope.motivos = [];
if (array.length > 0) {
for (var i = 0; i < array.length; i++) {
$scope.motivos.push({
id: array[i].id,
...
impactos: array[i].impacto_oee,
...
});
}
}
我的注册函数:
function cadastrar () {
restApi.gerenciamentoMotivosParada.save({
...
impacto_oee: $scope.selectedUnique($scope.impactos) === "Queda de Disponibilidade" ? "Disponibilidade" : "Queda de Performance" ? "Performance" : "Nenhum",
}, ...
}
我有一个在编辑部分使用的更新功能,当我 select“Nenhum”时它也不起作用。 “Nenhum”选项被简单地忽略了。
function atualizar () {
var motivo;
if ($scope.editing >= 0) {
motivo = {
...
impacto_oee: $scope.selectedUnique($scope.impacto) === "Queda de Disponibilidade" ? "Disponibilidade" : "Queda de Performance" ? "Performance" : "Nenhum" ? "Nenhum" : "Nenhum"
...
};
}
问题出在您的注册函数中。正确的写法如下
function cadastrar () {
restApi.gerenciamentoMotivosParada.save({
...
impacto_oee: ($scope.selectedUnique($scope.impactos) === "Queda de Disponibilidade") ? "Disponibilidade" : ($scope.selectedUnique($scope.impactos) === "Queda de Performance") ? "Performance" : "Nenhum",
},
...
}
Explanation:
基本上,您要使用三元运算符实现的目标是 if-elseif-else
if (condition1) {
//value1
} else if(condition2) {
//value2
} else {
//value3
}
在你的情况下,condition2
丢失了,这就是原因,它没有检查“Queda de Performance”条件
我有一个带有单个 select 的模态,称为“Impacto OEE”,它有 3 个选项“Queda de Disponibilidade”、“Queda de Performance”和“Nenhum”。如果用户选择的选项是“Queda de Disponibilidade”,它将被保存为“Disponibilidade”,如果是“Queda de Performance”,它将被保存为“Performance”,如果是“Nenhum”,它将被保存为“Nenhum”。但是当我点击注册时,它只保存为“Disponibilidade”或“Nenhum”。在我的数据库 (PostgreSQL) 中,该列被称为“impact_oee”作为 ENUM,其值为“Disponibilidade、”Performance、“Nenhum”。
我是 Angular 的新手,但我不明白我应该怎么做才能使其正常工作,或者我做错了什么。下面是部分代码。有人可以帮助我吗?
这是我在 HTML 中的代码:
<div class="input-group">
<isteven-multi-select directive-id="impactos" tabindex="4" class="multiselect" helper-elements="filter"
translation="traducaoMultiSelect"
input-model="impactos"
output-model="impacto"
button-label="name"
item-label="name"
tick-property="ticked"
ng-class="{'open':impactosOpen }"
on-open="impactosOpen = true"
on-close="impactosOpen = false"
selection-mode="single" />
</div>
多选配置:
$scope.impactos = [{ name: "Queda de Disponibilidade" }, { name: "Queda de Performance" }, { name: "Nenhum" }]
从我的服务器哪里获取数据:
new Promise(function (resolve, reject) {
restApi.motivosParadaGerenciamento.query({}, function (array) {
$scope.motivos = [];
if (array.length > 0) {
for (var i = 0; i < array.length; i++) {
$scope.motivos.push({
id: array[i].id,
...
impactos: array[i].impacto_oee,
...
});
}
}
我的注册函数:
function cadastrar () {
restApi.gerenciamentoMotivosParada.save({
...
impacto_oee: $scope.selectedUnique($scope.impactos) === "Queda de Disponibilidade" ? "Disponibilidade" : "Queda de Performance" ? "Performance" : "Nenhum",
}, ...
}
我有一个在编辑部分使用的更新功能,当我 select“Nenhum”时它也不起作用。 “Nenhum”选项被简单地忽略了。
function atualizar () {
var motivo;
if ($scope.editing >= 0) {
motivo = {
...
impacto_oee: $scope.selectedUnique($scope.impacto) === "Queda de Disponibilidade" ? "Disponibilidade" : "Queda de Performance" ? "Performance" : "Nenhum" ? "Nenhum" : "Nenhum"
...
};
}
问题出在您的注册函数中。正确的写法如下
function cadastrar () {
restApi.gerenciamentoMotivosParada.save({
...
impacto_oee: ($scope.selectedUnique($scope.impactos) === "Queda de Disponibilidade") ? "Disponibilidade" : ($scope.selectedUnique($scope.impactos) === "Queda de Performance") ? "Performance" : "Nenhum",
},
...
}
Explanation:
基本上,您要使用三元运算符实现的目标是 if-elseif-else
if (condition1) {
//value1
} else if(condition2) {
//value2
} else {
//value3
}
在你的情况下,condition2
丢失了,这就是原因,它没有检查“Queda de Performance”条件