Quando sono passare alla pagina dei dettagli per la seconda volta, la pagina diventa nudo, tutti gli stili sparire dalla pagina, ho potuto capire il motivo, ad esempio http://jsfiddle.net/Hpyca/24/mobile stile Jquery non si applica in seconda navigazione tempo per la pagina dei dettagli
Html
<div data-role="page" id="dashBoardPage" data-bind="with: dashboardData">
<button type="button" data-bind="click: goToList">DashBoard!</button>
</div>
<div data-role="page" id="firstPage" data-bind="with: hospitalList">
<div>
<div id="listViewDiv">
<ul data-role="listview" data-bind="foreach: hospitals">
<li data-bind="click: $parent.selectHospital">
<h2>Hospital Id:<span data-bind="text:id"></span></h2>
<p>Name <span data-bind="text:name"></span></p>
</li>
</ul>
</div>
</div>
</div>
<div data-role="page" id="detailsView" data-bind="with: hospitalList.selectedHospital">
<a href="#firstPage">Back</a>
<a href="#dashBoardPage">Home</a>
<div>
<div data-role="tabs" id="tabs">
<div data-role="navbar">
<ul>
<li><a href="#one" data-ajax="false">Info</a></li>
<li><a href="#two" data-ajax="false">Details</a></li>
</ul>
</div>
<div id="one" class="ui-body-d ui-content">
<h2>Hospital Id : <span data-bind="text:id"></span></h2>
</div>
<div id="two">
<h2>Id : <span data-bind="text:id"></span></h2>
<input data-mini="true" tabindex="5" data-bind="value: name"
id="name"/>
</div>
</div>
</div>
</div>
js
function NavigationService(){
var self = this;
self.navigateTo = function(pageId){
$.mobile.changePage($('#' + pageId));
};
}
//You need to determine if you want to handle dependencies using requirejs or just global variables.
var navigationService = new NavigationService();
function HospitalViewModel(data){
var self = this;
self.id = data.id;
self.name = ko.observable(data.name);
}
function DashboardViewModel(data){
var self = this;
self.goToList = function(){
navigationService.navigateTo('firstPage');
};
}
function HospitalListViewModel(data){
var self = this;
self.hospitals = data;
self.selectedHospital = ko.observable();
self.selectHospital = function(hospital){
self.selectedHospital(hospital);
navigationService.navigateTo('detailsView');
};
}
function PageViewModel(){
var self = this;
//This list should be retrieved from a service of some kind
var allHospitals = [
{"id":"001","name":"Hospital1","location":"SL"},
{"id":"002","name":"Hospital2","location":"SL"}
].map(function(hospital){return new HospitalViewModel(hospital);});
self.hospitalList = new HospitalListViewModel(allHospitals);
self.dashboardData = new DashboardViewModel();
}
ko.applyBindings(new PageViewModel());
Per riprodurre il problema, Click (Dashboard) -> Fare clic su (LISTELEMENT) -> Fare clic su (Indietro, Inizio) -> Fare clic su (di nuovo elenco elemento -> vai alla pagina dei dettagli), ora è possibile vedere l'interfaccia utente nuda,
Sì in questo modo anche lavorando per me, ma come potrei chiamare una funzione all'interno di questo ambito oggetto, ho aggiornato il http://jsfiddle.net/Hpyca/28/, Posso usare il "template" ad eliminazione diretta, inste annuncio di "con" – ExCode
@ExCode Sì, è possibile utilizzare un modello a eliminazione diretta e chiamare le funzioni nell'ambito dell'oggetto; ma non è (sempre) necessario. Il primo parametro in una funzione di gestore conterrà il valore del modello corrente. Vedi [aggiornamento fiddle] (http://jsfiddle.net/Hpyca/29/) (vai ai dettagli di un ospedale). Questo aiuta? – rwisch45
@ rwisch45 grazie per la risposta.nel codice aggiornato (http: // jsfiddle.net/Hpyca/29 /) errore css continua ancora, voglio venire il problema css.Per riprodurre il problema, fare clic (Dashboard) -> Fare clic (ElencoElemento) -> Fare clic (Indietro, Home) -> Fare clic (ancora lista elemento -> vai alla pagina dei dettagli), ora puoi vedere l'interfaccia utente nuda, – ExCode