75 messaggi dal 08 agosto 2003
Ciao a tutti,

utilizzo VS 2013 con l'ultimo template di Jhon Papa, Hot Towel e stavo facendo le prime prove(quindi nulla è stato toccato del codice originale ma solo ciò che riporterò sotto), mi chiedo come mai se cerco di personalizzare la view home.html pur avendo fatto i seguenti passaggi:

1)Creato una nuova applicazione MVC con il template Hot Towel;
2)Aggiunto il pacchetto di jquery.Mobile 1.4;
3)Aggiunto il jQuery Mobile sia al JS che al CSS col metodo bundles.add()


bundles.Add(
              new ScriptBundle("~/scripts/vendor")
                .Include("~/scripts/jquery-{version}.js")
                .Include("~/scripts/jquery.mobile-{version}.js")

bundles.Add(
              new StyleBundle("~/Content/css")
                .Include("~/Content/ie10mobile.css")
                .Include("~/Content/jquery.mobile-{version}.css")
                .Include("~/Content/jquery.mobile.structure-{version}.css")
                .Include("~/Content/jquery.mobile.theme-{version}.css")


Credo che tutto sia importato correttamente e lo deduco dal fatto che quando vedo il codice renderizzato tutto sembra ok(mi riferisco agli include), il problema si verifica quando cerco di far applicare lo stile di jQuery Mobile alla view home.html (App/Views) se scrivo il seguente codice preso dal sito jQuery Mobile


<ul data-role="listview" data-inset="true">
    <li><a href="#">
        <img src="../_assets/img/album-bb.jpg">
    <h2>Broken Bells</h2>
    <p>Broken Bells</p></a>
    </li>
    <li><a href="#">
        <img src="../_assets/img/album-hc.jpg">
    <h2>Warning</h2>
    <p>Hot Chip</p></a>
    </li>
</ul>


non funziona o meglio visualizza la lista ma nell'html renderizzato non trovo le classi di jQueryMobile applicate ai tag <li> di conseguenza vengno visualizzati vecchio stile html, però la cosa davvero strana è che se lo stesso codice lo sposto dentro il <body> della pagina index.cshtml (Views/HotTowel) il codice viene renderizzato bene e a video riesco a vedere i tag <li> con la visualizzazione classica

per intenderci mi aspetto a video la lista che vedete da questo link scorrendo in basso fino a trovare "Thumbnails"

http://demos.jquerymobile.com/1.4.0/listview/

Che controlli posso fare, che test posso fare per capire cosa sta bloccando la view a non prendere gli stili CSS, un'altra cosa ho notato che quando faccio click in alto sul "nav" o sull'icona home non esegue il posback passatemi il termine anche se sappiamo che non lo è.

Grazie in anticipo
Francesco
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Francesco,

Francesco1982 ha scritto:

non funziona o meglio visualizza la lista ma nell'html renderizzato non trovo le classi di jQueryMobile applicate ai tag <li>

Questo succede perché l'applicazione SPA non sta usando il meccanismo di navigazione di jQuery Mobile che, oltre a caricare la view HTML, ne trasforma il contenuto. Nella documentazione chiamano questa fase "enhance the new content".

Fortunatamente questo problema non ti costringe a stravolgere l'attuale navigazione perché dalla versione 1.4 di jQuery Mobile l'enhancing sembra essere disponibile on-demand grazie a questa apposita funzione.
http://api.jquerymobile.com/enhanceWithin/

Dunque prova ad invocarla subito dopo che la nuova view è stata caricata.
Nell'applicazione SPA Hot Towel, che usa il router di Durandal 2.0, potresti mettere quell'invocazione nel file App/viewmodels/shell.js, creando una callback per compositionComplete, un evento che si verifica ogni volta che Durandal mette insieme dei pezzi nell'interfaccia.
var shell = {
    activate: activate,
    router: router,
    compositionComplete: function () { $("#applicationHost").enhanceWithin(); }
};

Penso che funzioni, anche se non sono del tutto sicuro che quello sia il punto più opportuno, dato che non sono esperto di Durandal. Casomai fai qualche ricerca nella documentazione.

ciao,
Moreno

Enjoy learning and just keep making
75 messaggi dal 08 agosto 2003
Ciao Moreno,

grazie per avermi risposto e scusa se rispondo così in ritardo, non ho avuto più modo di fare dei test poichè mi sono dedicato ad altro ma tengo conservata la tua risposta non appena avrò un pò di tempo posterò i risultati.

Grazie ancora

Francesco

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.