親 Ractive の Ractive コンポーネントから作成されたインスタンスにアクセスしたい状況に陥っています。例えば
var myComponent = Ractive.extend(
{
uselessFunction: function()
{
alert('Hello ' + this.data.who);
}
}
);
var myRactive = new Ractive(
{
el: 'body',
components:
{
mycomponent: myComponent
},
template: '{{#people}}<rv-mycomponent who="{{.}}"/>{{/people}}',
data:
{
people:
[
'Mike',
'Charly',
'April'
]
}
}
);
それを実行すると、myComponent の 3 つのインスタンスが取得されます。ここで、myRactive のメソッド内から任意のコンポーネント インスタンスで uselessFunction を呼び出す方法が必要です (または、すべてのインスタンスでさらに優れています)。
もちろん、これを実現するための回避策はたくさんあります (コンポーネントでオブザーバーを使用してから共有プロパティを変更するなど)。残念ながら、myRactive オブジェクトをふるいにかけた限り、コンポーネント インスタンスへの参照が見つからないようです。1 つあると思われますが、myComponent の teardown() が各コンポーネントに対しても teardown() を呼び出していることを確認できます。