これは、理想的にはプロパティにバインドできる必要があるが、そのプロパティがルート ビュー モデル内のどこにあるかを知ることができる必要がある、非常にニッチなシナリオです。
たとえば、次のオブジェクトがあるとします。
{
id: ko.observable(1),
name: ko.observable("some user"),
groups: [
{ id: ko.observable(1), name: ko.observable("some group") },
{ id: ko.observable(2), name: ko.observable("some group") },
]
}
ここでの問題は、次のようなバインディングがある場合です。
<div>
<!-- ko foreach: groups -->
<input data-bind="value: name, custom-binding: { property: name, other: foo }" />
<!-- /ko -->
</div>
今、私はただ反対するためname
にここで解決できる必要があります. 現在、プロパティが値を見るだけであることをバインディングで知る方法はないと思うので、これを文字列として渡すか、バインディングが見えるオブジェクトにカスタム属性を持たせる必要があるかもしれません為に。いずれにせよ、バインディングのスコープ内で (そのスコープに適用された rootModel に関連して) 各オブザーバブルのプロパティ パスを何らかの形で取得できる必要があります。rootModel.groups[currentIndex].name
name
"name"
私はそれが狂っているように見えることを知っています. foreach は、子バインディング スコープが変更されてラップされるシナリオの 1 つにすぎないため、すべてのシナリオでproperty-path
、このカスタム バインディングで使用される for プロパティを構築できる必要があります。
これを行う方法はありますか?