Söylemeye nasılsa istiyorum "Bu proje kullanımda tüm yöntemleri istiyorum [JavaScript]" Elle ek açıklama her yöntemVarsayılan olarak JavaScript özniteliğini kullanmanın bir yolu var mı?
cevap
F # 3 WebSharper içinde ReflectedDefinition özniteliği (aka [JavaScript] ile bir modül işareti sağlar can sıkıcı) altındaki tüm yöntemleri işaretler.
More About F# 3.0 Language Features bakınız: nadir niteliklerin
(Konuşma, F # 3.0, [< ReflectedDefinition>] nitelik şimdi bunu uygulamak için bir kısaltmadır yolu olarak, modülleri ve tip tanımları yerleştirilebilir . modülü/türdeki her birey üye)
Örneğin, yakın zamandaki FunScript örneklerine bakabilirsiniz (aynı kod yapısının da WebSharper'da çalışacağını düşünüyorum): https://github.com/tpetricek/Documents/blob/master/Talks%202013/Love%20The % 20Data% 20 (Channel9) /code/WorldBank.Web/Page.fs –
Ben Phil cevabı gitmek için yol olduğunu düşünüyorum - bütün bir modül veya türünü işaretleyebilirsiniz zaman, çok fazla gürültü eklemez ve aynı zamanda yapmanızı sağlar ayırmak WebSharper'da sunucu tarafı ve istemci tarafı kodu arasında.
Sadece kayıt için, F # derleyicisi açık kaynak kodludur ve bu nedenle (bu sorunu önemli bulabilecek biri), ayarı geçersiz kılmak için ek bir komut satırı özniteliği ekleyebilecek bir şube kolayca oluşturabilir. Ben sadece bu parametre eklemek ve (burada is the source on GitHub) reflect
bayrağının varsayılan değerini ayarlama meselesi olduğunu düşünüyorum.
, ana F # deposu yeni özellikler eklemek katkıları kabul etmez (discussion here bakınız), ama kesinlikle
Eğer :-) F # ekibine bir özellik isteği göndermek için iyi bir yoldur JavaScript kodunuzla tüm kodunuza açıklama yaparsanız, WebSharper derleyicisi her şeyi JavaScript'e çevirmeyi deneyecektir. WebSharper geliştirmedeki temel kural, sunucu tarafı ve istemci tarafı kodunu ayırmaktır, böylece .NET 4.5'ü hedefliyorsanız, her işlev/üye yerine, modül/sınıf içeren istemci tarafı kodunu eklemeniz yeterlidir.
namespace Website
open IntelliFactory.WebSharper
module HelloWorld =
module private Server =
[<Rpc>]
let main() = async { return "World" }
[<JavaScript>] // or [<ReflectedDefinition>]
module Client =
open IntelliFactory.WebSharper.Html
let sayHello() =
async {
let! world = Server.main()
JavaScript.Alert <| "Hello " + world
}
let btn =
Button [Text "Click Me"]
|>! OnClick (fun _ _ ->
async {
do! sayHello()
} |> Async.Start)
let main() = Div [btn]
type Control() =
inherit Web.Control()
[<JavaScript>]
override __.Body = Client.main() :> _
Websharper'ı yalnızca javascript değişimi için kullanıyorum, bu yüzden sunucu tarafında gerçekten umurumda değil, modül ek açıklamaları metottan çok daha iyi. – ais
- 1. If ifadesinin durumunu, değeri olarak kullanmanın bir yolu var mı?
- 2. Ko.observableArray öğesini harita olarak kullanmanın bir yolu var mı?
- 3. PHP WebSocket'ı Heroku'da kullanmanın bir yolu var mı? Varsayılan olarak sadece
- 4. IE7 veya IE8'de Canvas kullanmanın bir yolu var mı?
- 5. ConcurrentDictionary.TryUpdate'i bir lambda ifadesiyle kullanmanın bir yolu var mı?
- 6. NSArray'da bir kategoride ObjectType kullanmanın bir yolu var mı?
- 7. Bir argümanı fmt.Printf dosyasında yeniden kullanmanın bir yolu var mı?
- 8. Bir İş örneğini yeniden kullanmanın bir yolu var mı?
- 9. Git, varsayılan olarak öntanımlı olarak var mı?
- 10. Değişen reklam banner büyüklüğünü kullanmanın bir yolu var mı?
- 11. Çoklu ek ifadesi kullanılıyorsa SCOPE_IDENTITY kullanmanın bir yolu var mı?
- 12. GoLang - Yansıtılan kodun kullanımını bellekte kullanmanın bir yolu var mı?
- 13. Jasmine'e kaynak olarak harici Javascript eklemenin bir yolu var mı?
- 14. XAML'de rastgele C# ifadelerini kullanmanın varolan bir yolu var mı?
- 15. İdris'te `-` `işlevini doğrudan kullanmanın iyi bir yolu var mı?
- 16. C++ #include ifadelerinde joker karakterlerini kullanmanın bir yolu var mı?
- 17. Tam model için @ Html.HiddenFor'u kullanmanın bir yolu var mı?
- 18. İçerik yöneticilerini jeneratörler içinde kullanmanın anlamlı bir yolu var mı?
- 19. Lua'yı BREW 3.0 platformunda kullanmanın bir yolu var mı?
- 20. WPF'de WebBrowser denetimini kullanmanın MVVM dostu bir yolu var mı?
- 21. Json.Net serileştirme yöntemini değişmez sınıflarla kullanmanın bir yolu var mı?
- 22. Dapper'da MultiMapping ve QueryMultiple'yi birlikte kullanmanın bir yolu var mı?
- 23. XSL-FO'da 'rowspan' eşdeğerini kullanmanın bir yolu var mı?
- 24. Cygwin'de Python 3.5'i kullanmanın bir yolu var mı?
- 25. MDX sorguları için LINQ kullanmanın bir yolu var mı?
- 26. F # içerisindeki arabirimleri kullanmanın daha basit bir yolu var mı?
- 27. Rust'taki yığındaki koleksiyonları kullanmanın bir yolu var mı?
- 28. Windows'ta Application Loader'ı kullanmanın herhangi bir yolu var mı?
- 29. DataProc ile BigQuery'yi kullanmanın bir yolu var mı?
- 30. Haskell'de printf formatlarıyla baskı kullanmanın bir yolu var mı?
Resim değil, aynı zamanda bu şekilde olmamalıdır - sunucu tarafı yöntemleri '[] ek not edilmemelidir '(bunlar istemci tarafında mevcut değildir işlevini kullanın için). –
Ayrıca, [] ile kodlanmış kodları gerçekten rahatsız edici buluyorum. Bunun yerine Typescript kullanmaya karar vermemden biri budur. Bir çözüm, tüm modülü veya sınıfı JavaScript olarak işaretlemek olabilir. Yoksa bu mümkün değil mi? –
Mümkün, bir örnek için cevabımı kontrol edin. – Taha