12
KnockoutJSを使用すると、観測可能な配列からアイテムを削除するにはどうすればよいですか?私はlistitemをクリックして、配列(そしてそれによってリスト)から項目を削除したいと思っています。KnockoutJSは観測可能な配列から項目を削除します。アイテムはforeachによって生成されたul内のlistitemです
以下のコードサンプルは、 'this.expertise is undefined'と報告しています。
何らかの種類の専門知識オブジェクトを定義し、そこから呼び出す必要がありますか?
<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>
.bindは何をしますか?バインドという言葉はすべて文書の上にありますので、私はそれを見落としている可能性があります – Hoppe
.bindは元の関数をラップする新しい関数を返し、 "this"の一貫した値で呼び出します。この場合、常に 'this'として' AppViewModel'のインスタンスを使用したいとします。希望は意味をなさない。 –
これはいいでしょう: viewModel.items.remove( "id"、1); viewModel.items.remove( "name"、 "Jim"); viewModel.items.remove(someObject); – jwize