は(ASP MVC 3の上にknockout.jsを使用して)コードを参照してくださいknockout.js? (remove()を使用してみましたが、エラーが発生しましたが、pop()が成功したとき)取り除きアイテムは、
答えて
あなたのタグ配列は、通常の配列です。観測可能な配列ではありません、それは削除メソッドを持たないでしょう。
ノックアウトは、あなたが好き、あなたのビューモデル、removeTagに機能を追加することができ、通常の配列
ko.utils.arrayRemoveItem(array, itemToRemove)
か、スプライスを使用することができるためのヘルパー(実際ko.utils.arrayRemoveItemはスプライスを使用しています)
通常、spliceを使用してjavascript配列から項目を削除できます。
ポップは、最後に挿入された値だけを削除するため動作しません。
var a = [1,2,3] a.splice(1,1); #1の位置で1つの要素を削除する=> [1,3]
これはノックアウトでも使用できます。例として :ID 1
EDITを持つすべての要素を返す。
ノックアウトもarray.removeようないくつかのAPIを有する(関数(A){a.id === 1を返します})あなたはこのJsFiddleを見ることができます http://jsfiddle.net/Ng39n/
array.remove(function(a){return a.id === 1;})を使用しているとき、私はまだ 'Microsoft JScriptランタイムエラーが発生します:オブジェクトはこのプロパティまたはメソッドをサポートしません'。 ko.utils.arrayMapを使って私と関係がありますか? –
を持っています次のようになります。
self.removeTag = function(tag) { self.tags.remove(tag); })
'.pop()'が動作する場合、それを使用しないでください。 –
.pop()は最後に入力した項目だけを取得しますか?私は、配列内の任意の項目を削除できるようにしたい。 –
あなたの権利を参照してください、その場合ポップは動作しません。 –