[解決済み] 観測可能な配列の中の項目を条件付きでプッシュするには?
2022-11-16 17:27:45
質問
私は
push
に新しい項目を追加したい。
observableArray
の上に新しいアイテムを追加したいのですが、そのアイテムがまだ存在しない場合のみです。KnockoutJSでこれを実現するためのquot;find"関数や推奨されるパターンはあるのでしょうか?
私は
remove
関数が
observableArray
は、条件を渡すための関数を受け取ることができます。私はほとんど同じ機能が欲しいのですが、渡された条件が真であるか真でない場合にのみそれをプッシュするようにします。
どのように解決するのですか?
observableArrayは
indexOf
関数(のラッパー)を公開します。
ko.utils.arrayIndexOf
). これにより、以下のことが可能になります。
if (myObservableArray.indexOf(itemToAdd) < 0) {
myObservableArray.push(itemToAdd);
}
もし両者が実際には同じオブジェクトへの参照ではなく、カスタムの比較ロジックを実行したい場合は
ko.utils.arrayFirst
のようにします。
var match = ko.utils.arrayFirst(myObservableArray(), function(item) {
return itemToAdd.id === item.id;
});
if (!match) {
myObservableArray.push(itemToAdd);
}
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン