私はRactiveを使い始めており、再利用可能なコンポーネントを作成する方法をよりよく理解したいと思っています。さまざまな状況で使用できる汎用ウィジェットを作成するのは非常に簡単です。私の問題は、多くの場合、アプリケーション内のデータがウィジェットが期待する形にならないことであり、ウィジェットを拡張してアプリケーション固有のものにする方法がわからないことです。
具体的な例として、折れ線グラフをデザインする Ractive コンポーネントを作成しているとします。私はの線に沿って何かをするだろう
var Chart = Ractive.extend({
template: chart,
data: {
points_to_path: function(points) {
// whatever
}
}
});
のようなテンプレートで
<svg>
{{# points_to_path(points) }}
<path d="{{ path }}" />
{{/ end of path }}
</svg>
このコンポーネントは次のように使用できます
var chart = new Chart({
data: {
points: [[1, 2], [3, 4], [5, 6]]
}
});
ここで、実際にそのようなコンポーネントを使用する必要があるとします。おそらく、私のデータは、上記のように 2 要素配列の配列の形にはなりませんpoints
。多分私はもっと似たものを持っています
[
{
date: 'aug 2011',
value: 12.51
},
{
date: 'sep 2011',
value: 12.38
},
...
]
したがって、私がやりたいことはChart
、上記の形式でデータを受け入れる、より具体的なアプリケーションを作成することです。変数Chart.extend
への参照は でハードコーディングされているため、 でこれを行う簡単な方法はわかりません。points
chart.html
Backbone のようなフレームワークでは、ビューがネストされているため、内側のウィジェットをより大きなビューにラップし、外側のビューでデータ変換のロジックを定義することができます。ここから Ractive でどのように進めばよいのかよくわかりません。最初から別の方法でウィジェットを設計するべきだったのかもしれません。
より一般的に言えば、私の問題は、Ractive で小さなコンポーネントを作成できることですが、それらをより大きなものに構成する方法がよくわかりません。
Ractive でコンポーネントを特殊化または拡張する慣用的な方法は何ですか? または、多くのコンポーネントを組み合わせてより大きなアプリケーションにしますか?