たとえば、観測可能な配列はマッピング関数(ko.mapping.fromJS)を使用して設定します。 observable配列内の値に基づいて、divの可視性をデータバインドするにはどうすればよいですか?foreachを使用してobservable配列内の値に応じてknockoutJSの可視性を変更するには
1
A
答えて
1
ko.observableArray
を使用する場合、配列内の個々のオブジェクトではなく、を参照しているのはです。したがって、配列からプッシュまたはポップされたものがあれば、ノックアウトがそれを認識してテンプレートを更新しますが、配列の個々のオブジェクトに変更がある場合などです。配列メンバの特定のプロパティが変更されると、ノックアウトはテンプレートを更新しません。
解決策は、アレイ内のアレイメンバーを購読したい別々に観察することです。あなたのケースでは、観察、配列内の値は、最初のインデックス部材内に存在する場合、あなたはあなたのビューモデルで次の操作を実行する必要があるだろうと言うことができます:
theArray: ko.observableArray(initialArray);
theValue: ko.observable(this.theArray[0]);
とdivの表示:
<div data-bind="visible: theValue.something"></div>
編集:
あなたのシナリオの問題は、特定のユーザーが管理者になる場合、ノックアウトは、配列内の各ユーザーの個々のプロパティを追跡していないため、テンプレートをレンダリングしません。ユーザー配列を追加/削除するときにのみテンプレートをレンダリングします。
ユーザーが管理者として設定されている場合、我々はあなたが結合しているどのようなタイプのデータおよび/または値記述することができた場合は、この>
//declare the view model
var viewModel = {
users: ko.observableArray(listOfUsers); //you need to pass the users list array you get from ko.mapping
}
//make each array member observable
for (var i = 0; i < viewModel.users().length; i++) {
viewModel.users()[i] = ko.observable(users()[i]);
}
関連する問題
- 1. foreachを使用して配列の値を変更します
- 2. foreach(KnockoutJS)内のバインディングを使用して
- 3. VBA - セル内の値に応じて配列のサイズを変更します
- 4. if文に応じて配列の値を変更する
- 5. ボディクラスに応じてdivの可視性をjavascriptで変更する
- 6. KnockoutJS:インデックスを使用して観測可能な配列の値にアクセスする
- 7. foreachを使用して配列内のすべての配列に値を追加する方法は?
- 8. knockoutjsを使用して配列内のアイテムに計算値を作成
- 9. プロパティの値に基づいてTextBlockの可視性を変更するには
- 10. 配列内のオブジェクトの数に応じてIDを変更します(javascript/jquery)
- 11. if文に応じて文字列配列を変更する
- 12. コンストラクタ内の配列にインデックスを変更する可能性
- 13. laravel5を使用してforeachループを配列に変換する
- 14. 二次元配列内の値に応じて、別の単一配列をCのバイナリに変換します
- 15. ビューに応じて可変の値
- 16. モデルビューを使用してスタックパネルの可視性を変更するアプローチ
- 17. 条件配列の値に応じて
- 18. php foreachを使って配列の配列に値を挿入
- 19. ユーザーの役割に応じてフィールドの可視性を制御します。
- 20. チェックボックスを使用してjavascriptでオブジェクトの可視性を変更しますか?
- 21. PHPの最小値を列の値に応じて配列
- 22. にMongoDBを使用して変更クエリ応答配列値とPHP
- 23. 配列内の配列の値に応じて配列をフィルタリングする方法は?
- 24. uint32_t *を使用してuint8_t配列の値を変更する
- 25. 既存の値に応じてdataGridViewの値を変更する
- 26. クラスの属性をローカルストレージの値に応じて変更します。
- 27. jqueryを使用して値の属性を使用して内部htmlを変更するには
- 28. Datamap - 値に応じて色を変更
- 29. リクエストパラメータに応じてCookieの属性を変更します
- 30. foreachを使用して配列内のエコー配列を作成しますか?
のような何かをする必要があり、それは再レンダリングするテンプレートを確実にするために、あなたはより良い答えを得ることができるでしょう。たとえば、ブール値、値<25、文字列== "表示"を使用していますか? –
下記のコメントを参照してください。 – jaffa