редактировать, удалять и выпадать, отображая правильный нокаут поля js

61
5

поэтому у меня есть шаблон jcoutout js, который отображает такие поля, как этот enter image description here, и может быть отредактирован, удален и добавлена новая строка. Поэтому, когда я нажимаю "edit in instantor", он показывает "Выбрать компанию" вместо того, чтобы дать мне первый вариант в качестве Instantor для редактирования. enter image description here И, наконец, когда я пытаюсь добавить новый элемент, он не показывает выбрать компанию, он просто дает возможность мгновенного первого, а не "Выбрать компанию", как это. enter image description here

Поэтому я хочу исправить это, но при редактировании он должен показывать инстантор вместо того, чтобы выбирать компанию, и когда я добавляю новый элемент, он должен показывать выбрать компанию вместо репликации верхнего поля.

Вот код для шаблонов.

 <script id="RRitemTmpl" type="text/html">
<tr>
<td class="" data-bind="text: Company"></td>
<td class="text-center" data-bind="text: third_party_rr_value"></td>
<td class="text-center" style="vertical-align:middle;">
<div data-bind="if: status() > 0">
<button type="button" class="btn btn-default btn-xs" data-bind="click: $parent.editItem">Edit</button>
<button type="button" class="btn btn-default btn-xs" data-bind="click: $parent.deleteItem">Delete</button>
</div>
<div data-bind="if: status() < 1">
<span data-bind="text: status_description"></span>
</div>
</td>
</tr>
</script>

<script id="RReditTmpl" type="text/html">
<tr>
<td class="text-center">
<select id="selected_currency_local" class="form-control input-sm" data-bind="options: $root.availableCompanies,
optionsText: 'text_value',
value: $parent.selectedCompanyLocal,
optionsCaption: 'Choose Company'">
</select>
</td>
<td class="text-center">
<input type="text" class="form-control input-sm text-left" data-bind="value: third_party_rr_value" />
</td>

<td class="text-center" style="vertical-align:middle;">
<button type="button" class="btn btn-default btn-xs" data-bind="click: $parent.acceptItemEdit">Accept</button>
<button type="button" class="btn btn-default btn-xs" data-bind="click: $parent.cancelItemEdit">Cancel</button>
</td>

</tr>
</script>

Просто добавьте, если это необходимо, я даю коды файлов js.

var ThirdPartyRRViewModel = function(parent, items) {

var root = parent;
var self = this;

this.items = ko.observableArray(items);

this.selectedItem = ko.observable();

/*Observable for storing the data of the company selected */
self.selectedCompanyLocal = ko.observable();

this.addItem = function() {

$.each(root.availableCompanies(), function (index, companyItem) {
if (companyItem.ID == root.userRiskRate().Company) {
self.selectedCompanyLocal(companyItem);
}
});

var newThird = {"ID":0, "ORIG_ID":0, "Company":self.selectedCompanyLocal().text_value,
"third_party_rr_value":0,
"status":1, "status_description":"Active"};

var newItem = new ThirdPartyItem(newThird);
self.items.push(newItem);
self.selectedItem(newItem);
};

this.deleteItem = function(itemToDelete) {
/* If ORIG_ID is greater than > 0, useropenloan row has been read from the database
and can not be removed, but cancelled. */
if (itemToDelete.ORIG_ID() > 0) {
itemToDelete.status(-1); /* Indicates to server that this item should be updated to cancelled. */
itemToDelete.status_description('Will be cancelled');
itemToDelete.itemIsEdited(1);
} else {
self.items.remove(itemToDelete);
}
self.selectedItem(null);
};

this.editItem = function(ThirdPartyItem) {
$.each(root.availableCompanies(), function (index, companyItem) {
if (companyItem.ID == ThirdPartyItem.Company()) {
self.selectedCompanyLocal(companyItem);
}
});
self.selectedItem(ThirdPartyItem);
};

this.acceptItemEdit = function() {
self.selectedItem().third_party_rr_type(self.selectedCompanyLocal().text_code);
self.selectedItem().Company(self.selectedCompanyLocal().text_value);
self.selectedItem().third_party_rr_type.commit();
self.selectedItem().Company.commit();
self.selectedItem().third_party_rr_value.commit();
self.selectedItem().itemIsEdited(1);
self.selectedItem(null);
self.selectedCompanyLocal(null);
};

this.cancelItemEdit = function() {
self.selectedItem().Company.reset();
self.selectedItem().third_party_rr_value.reset();
self.selectedItem(null);
self.selectedCompanyLocal(null);
};

this.templateToUse = function(item) {
return self.selectedItem() === item ? "RReditTmpl" : "RRitemTmpl";
};
};

спросил(а) 2021-01-19T16:07:02+03:00 2 месяца, 3 недели назад
1
Решение
61

При изменении кода "Company":self.selectedCompanyLocal().text_value, "Company":self.selectedCompanyLocal() Он должен работать.

ответил(а) 2021-01-19T16:07:02+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема