2013-11-09 39 views
5

Yanlış bir şey yapmalıyım, ancak göremiyorum ... Temel olarak sails generate controller products aracılığıyla bir denetleyici/model oluşturuyor ve /controllers/ProductsController dosyasına bazı değişkenler ekliyorum Ben localhost kontrolÖzel görünüm/eylem/denetleyici çalışmıyor Yelkenler JS

index: function(req, res) { 

    return res.view({ 
     myOne: 'World?', 
     myvar: 'hello???', 
     title: 'Yeap' 
    }) 

}, 

ve ne zaman: örneğin endeks eylem 1337/ürünler kesinlikle yeterli değişkenler şablon içinde yazdırılır. Özel bir görünüm eklemediğimi ve şablon dosyamın views/products/index.jade'da bulunduğunu unutmayın (EJS'den ziyade Jade kullanıyorum). Ancak örneğin /config/routes özel bir görünüm oluşturursanız: değişkenler Şablonumdaki

customAction: function(req, res) { 

    return res.view({ 
     myOne: 'Hello?', 
     myvar: 'World???', 
     title: 'Yeap' 
    }) 

}, 

baskılı değildir:

'/custom': { 

    view: 'custom', 
    controller: 'ProductsController', 
    action: 'customAction' 

} 

ve benim ProductsController içinde daha önce tarif edildiği gibi çok benzer bir etkiye sahiptirler. Şablon iyi çağrılıyor yani Denetleyici ve Eylem (yani öyle görünüyor). Herkes yanlış yaptığımı açıklayabilir mi? Eğer yoluyla erişmek istiyorsanız

+0

Görünümünüzü nereye koydunuz - custom.jade? – JohnGalt

+0

Görünümler klasörüne ekledim. Herhangi bir dizin altında değil. Ancak, hata, görünümün bulunmaması durumunda, hata farklı olurdu. Görünüm tamamlandı, ancak hiçbir veri iletilmedi. – WagnerMatosUK

cevap

8

Sen eylem customAction.jade olarak görünümü aynı adı adlandırma arasında bir seçim var:

index: function(req, res) { 

    return res.view({ 
    myOne: 'World?', 
    myvar: 'hello???', 
    title: 'Yeap' 
    }) 

}, 

veya tarafından (örneğin index.jade) aynı görünüm/şablon erişebilir

customAction: function(req, res) { 

    return res.view('products/index', { 
    myOne: 'World?', 
    myvar: 'hello???', 
    title: 'Yeap' 
    }) 

}, 

Ben Ejs here kullanarak bir çalışma repo var: Bu sözdizimini kullanarak.

+0

Onları istemci tarafındaki javascript'e nasıl alabilirim. Şu anda onları gizli bir div etiketine koyup jquery kullanarak çekiyorum. Daha akıllı bir yol var mı? –

+0

@VampireCoder bunu nasıl kullanmak istediğinize bağlı. Bunu yalnızca şablon motorunuzda bulabilirsiniz (eğer nesne, şablonda içinden geçebileceğiniz yazıların bir listesiyse). Ancak, istemcinin yanında js kullanmak niyetinde, ne yazık ki, ya bahsettiğin gibi almak ya da bir ajax çağrısı yapmak için jQuery kullanarak sıkışmışsın (ama bu biraz değişiyor.) – WagnerMatosUK