Używając KnockoutJS, jak mogę usunąć element z tablicy obserwowalnej? Chcę móc kliknąć na liście i usunąć element z tablicy (a tym samym z listy).KnockoutJS usuwa element z obserwowalnej tablicy. Pozycja jest listitem w ul, który został wygenerowany przez foreach
Poniższy przykładowy kod raportu zgłasza: "this.expertise is undefined".
Czy muszę zdefiniować jakiś obiekt ekspertyzy, a następnie wywołać go z tego miejsca?
<ul data-bind="foreach: expertise">
<li data-bind="text: Key, click: $parent.removeExpertise"></li>
</ul>
<script type="text/javascript">
$(function() {
function AppViewModel() {
this.removeExpertise = function (expertise) {
this.expertise.remove(expertise);
};
this.expertise = ko.observable([
{ Key: 'Charles', Value: 'Charlesforth' },
{ Key: 'Denise', Value: 'Dentiste' }
]);
}
// Activates knockout.js
jQuery(document).ready(function() {
ko.applyBindings(new AppViewModel());
});
});
</script>
co robi plik .bind? Słowo bind jest po ich dokumentach, więc mogę go nie zauważyć – Hoppe
.bind zwraca nową funkcję, która owija pierwotną funkcję i wywołuje ją ze stałą wartością "this". W tym przypadku chcesz, aby zawsze używał instancji 'AppViewModel' jako' this'. Mam nadzieję, że ma to sens. –
To byłoby miłe: viewModel.items.remove ("id", 1); viewModel.items.remove ("name", "Jim"); viewModel.items.remove (someObject); – jwize