2014-09-16 17 views
5

Duyarlı bir sitem var ve benim sayfa şablonunun parçaları sayfa başına ana içeriğinden çökmüş olup olmadığını endişelerini ayırmak istiyorum özelliklerin sözkonusu çalışma zamanı, static tanım bloklarını özelliklerin dışında toplayacak gibi görünmüyor.Besteleme Geb sayfalar

Bu, dolaylı olarak Gebelik özelliklerine sahip olmak gibi endişeler yaratmak mümkün mü? Değilse, uygulanan özelliklerden bilgi çekmeme izin verecek bir sözdizimi var mı? HomePage.at çözümlemiyor.

+0

"Statik" özelliklerini kaldırırsanız ne olur? – Will

+0

@WillP Geb deyimiyle çalışmaz. Grails'den esinlenilen bitler için kendine özgü bir DSL'ye sahip. – chrylis

+0

Merak etme: Bu özellikleri arayüz olarak bildirirseniz davranış değişiklikleri herhangi bir şekilde gerçekleşir mi? – Will

cevap

1

documentation on traits and static fields'a bakarsanız, statik bir alan olduğunu belirten bir özellikte karıştırmanın, alanı sınıfa eklemediğini açıkça belirttiğini fark edeceksiniz. Gebeler, Groovy'ye özellikler eklenmeden önce yaratıldı; böylece, sayfa oluşturmak için bunları kullanmak, API'yi tasarlarken kesinlikle dikkate alınmadı.

Url ve denetleyicide her iki sayfa için de aynıysa ve yalnızca içerik mobil ve masaüstü sürümü arasında farklılık gösteriyorsa neden sadece miras kullanmıyorsunuz?

class HomePage { 
    static url = '' 
    static at = { title == 'My Site' } 
} 

class DesktopHomePage extends HomePage { 
    static content = {...} 
} 

class MobileHomePage extends HomePage { 
    static content = {...} 
} 
İlgili konular