2012-04-18 12 views
1

は(ASP MVC 3の上にknockout.jsを使用して)コードを参照してくださいknockout.js? (remove()を使用してみましたが、エラーが発生しましたが、pop()が成功したとき)取り除きアイテムは、

+1

'.pop()'が動作する場合、それを使用しないでください。 –

+0

.pop()は最後に入力した項目だけを取得しますか?私は、配列内の任意の項目を削除できるようにしたい。 –

+0

あなたの権利を参照してください、その場合ポップは動作しません。 –

答えて

3

あなたのタグ配列は、通常の配列です。観測可能な配列ではありません、それは削除メソッドを持たないでしょう。

ノックアウトは、あなたが好き、あなたのビューモデル、removeTagに機能を追加することができ、通常の配列

ko.utils.arrayRemoveItem(array, itemToRemove) 

か、スプライスを使用することができるためのヘルパー(実際ko.utils.arrayRemoveItemはスプライスを使用しています)

1

通常、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/

+0

array.remove(function(a){return a.id === 1;})を使用しているとき、私はまだ 'Microsoft JScriptランタイムエラーが発生します:オブジェクトはこのプロパティまたはメソッドをサポートしません'。 ko.utils.arrayMapを使って私と関係がありますか? –

1

を持っています次のようになります。

self.removeTag = function(tag) { self.tags.remove(tag); })