2009-06-03 7 views
8

Önceden extjs kullanarak hiç kimse bir not uygulaması yaptı mı? Paylaşmayı umduğunuz herhangi bir tuzak veya yaka var mı?Ekstraları grails kullanarak mı deneyimleyin?

O extjs beklediği dan oldukça farklı grails tarafından varsayılan olarak JSON biçimi çıktı gibi görünüyor, ama grails tarafında JSON özelleştirme meselesi nedir?

cevap

13

Grails + ExtJS kombinasyonunu çok kullanıyorum ve uygulanması oldukça kolay.

{"items":[{"class":"Book","id":1,"title:"The Definitive Guide to Grails","author":"Graeme Rocher",... 

bu sizin nasıl bir örnektir: gibi

def list = { 
    def books = Book.list(params)  
    render([ items: books, totalCount: Book.count() ] as JSON) 
} 

bu üretecek "Ext-uyumlu" JSON: ızgaraları için JSON Çıktı kolayca denetleyicileri böyle bir şey yaparak elde edilebilir JsonStore başlatmak gerekir.

var store = new Ext.data.JsonStore({ 
    url: '${createLink(action: 'list')}', 
    root: 'items', 
    totalProperty: 'totalCount', 
    fields: [ 'id','title','author','isdn', 'dateCreated' ], 
    paramNames: { start : "offset", limit :"max", sort : "sort", dir : "order" } 
}); 

tarihi değerleri ile uğraşan, IMO JSON Converter (için JavaScript tarihi biçimini etkinleştirmek için en iyi yöntem yani tarih değerlerini işlemek edilecek "2009-04-16T00: 00: 00Z" varsayılan biçimi yerine new Date(123123123) olarak düzenlenmiştir, bu nedenle tarih formatını veya saat dilimi öğelerini önemsemenize gerek yoktur. Sen/Config.groovy sizin grails-app/conf içinde yapılandırarak bunu yapabilirsiniz: Ben de ızgara filtre eklentisi için sunucu tarafı işlevselliğini uyguladık

grails.converters.json.date = 'javascript' 

, açılan kutu uygulamalarının çeşitli kombinasyonları ile (uzaktan otomatik tamamlama), ağaçlar, formlar vb. Bunun için daha fazla örnek kod görmek isterseniz, bana bildirin. DataStores kalıcı olsun arka uç geri veri göndermek için seçenek sunar olarak

ExtJS 3.0 (şu anda RC), hatta daha iyi Grails ile bütünleşir. Ext.Direct yaklaşım yeni olanaklar yanı

+0

Bu harika bir bilgi. Çok teşekkürler! –