2016-05-09 5 views
1

Propertiesマルチレベル設計の定義は

私は、マルチレベルのプロパティ定義を持って定義されたカスタムコントロールを持っている: 私は私のデザインの定義を記述しようとしています。私は簡単にこのようtextcenterとcenterblockプロパティにアクセスすることができます

Center text = <%=this.textcenter %> 
Center block = <%=this.centerblock %> 

をしかし、私は幅があり、私のデザインの定義内のフォルダをオフセットpropetiesにアクセスすることはできませんよ。 試しました

Column Offset xs= <%=this.offset.xs%> 

ただし、動作しません。

+0

Hmmはバグかもしれません。グループで「複数のインスタンスを許可」を有効にすると、これは動作します: '<%= this.offset [0] .xs%>' –

答えて

3

これはコアコードのバグです(つまり、extlibリリースでは解決できません)。このコードでは、String/primitiveまたはCollectionsを含むカスタムプロパティのみが処理されるため、コレクションではないネストされたオブジェクトは処理されません。

これを回避するには、カスタムグループを「複数のインスタンスを許可する」ように変更し、デザイン定義で参照することをお勧めします。

Column Offset xs= <%= (null != this.offset && this.offset.length > 0 ? this.offset[0].xs : 'default') %> 

理想のない、今の問題を回避しています:プロパティが定義されていないとき、あなただけのケースを処理するために注意する必要があります。

+0

幅グループで複数のインスタンスを許可しました。 : "カスタムコントロールのデザイン定義のマークアップでエラーが発生しました:不明なインデックス付きプロパティ[0]" –

+0

これは、XPをXPに追加するときに幅propを未定義のままにした場合に起こります。その周りに道があるかどうかを試してみてください –

+0

デザイン定義のスニペットを更新しました。そのため、プロパティが定義されていないケースを処理できるようになりました。もっと良い? –

関連する問題