コンポーネントは再利用が可能です。コンポーネント内に別のコンポーネントをネストすることができます。バインディングファイルにて、エレメントの代わりにコンポーネントを指定してください。
OtherComponent : MainPage {}
コンポーネントはエレメント属性を持ちません。その代わりに、インスタンス変数を属性として扱うことができます。
class MainPage < CKComponent attr_accessor :title end
OtherComponent : MainPage { title = "Example for CKComponent"; }
上記の例では親コンポーネントがMainPageコンポーネントをネストし、その属性としてtitleを設定しています。
title属性はMainPageコンポーネントのインスタンス変数であるため、文字列"Example for CKComponent"が代入されることになります。
コンポーネントは単独で使うこともネストすることもできますが、各コンポーネントを構成する「部品」としてネスティングのみに使うコンポーネントには単独表示させたくないことがあります。このような場合にはCKPartsMakerモジュールを使います。
CKPartsMakerはコンポーネント単体で表示を行わないためのモジュールです。このモジュールをインクルードしたコンポーネントは、単独表示のリクエストが来ると代わりのページを表示します。部品コンポーネントは、ほかのWebページコンポーネントと区別するため名前の最後に"Parts"や"Component"などとつけるといいでしょう。
オブジェクト属性 | 説明 |
---|---|
substitute_page |
代替ページ。指定しないときはメインページを表示する。 |