페이지 stateManage JS
과 UI에 변화 값이 아닌PageStateManager = (function() {
var viewModels = {};
var changePage = function (url, viewModel) {
alert(">>>>>>>> "+ viewModel.runticketNumber());
$.mobile.changePage(url, {viewModel: viewModel});
};
var registerViewModel = function (viewModelName, viewModel) {
viewModels[viewModelName] = viewModel;
};
var initPage = function(page, newViewModel) {
var viewModelName = page.attr("data-viewmodel");
if (viewModelName) {
if (newViewModel) {
registerViewModel(viewModelName, newViewModel);
}
// get view model object
var viewModel = viewModels[viewModelName];
// apply bindings if they are not yet applied
if (!ko.dataFor(page[0])) {
ko.applyBindings(viewModel, page[0]);
viewModel.errors = ko.validation.group(viewModel);
ko.validation.group(viewModel).showAllMessages(false);
}
}
};
var onPageChange = function (e, info) {
initPage(info.toPage, info.options.viewModel);
};
$(document).bind("pagechange", onPageChange);
return {
changePage: changePage,
initPage: initPage
};
})();
티켓 JS
function RunTicket(jsRunTicket) {
var self = this;
ko.mapping.fromJS(jsRunTicket, {}, this);
self.save = function(){
alert(">>>> " +this.isValid());
}
목록보기 HTML
<div id="listViewDiv">
<ul data-role="listview">
<!-- ko foreach: tickets -->
<li data-bind="click:$root.clickList">
<h2>Ticket No:<span data-bind="text:action"></span></h2>
<p>Item <span data-bind="text:deliveryNetworkName"></span></p>
<p class="ui-li-aside"><strong><span data-bind="text: runTicketType"></span></strong></p>
</li>
<!-- /ko -->
</ul>
</div>
}
개
보기 모델
var viewModel = {
clickList : function(val){
var rt = new RunTicket(service.getRunTicket(val.id));
PageStateManager.changePage($("#detailsView"),rt);
}
seats :[{"action":"SAVE","bsW":null,"date":"2013-12-19T17:11:00","deliveryNetworkName":"XXXXX 7-2932H","runticketNumber":3957,"id":75837},{"action":"SAVE","bsW":null,"date":"2013-12-19T17:11:00","deliveryNetworkName":"XXXXX 7-2932H","runticketNumber":3958,"id":75837}]
}
applyBindings(viewModel,document.getElementById("firstPage"))
기록은 사람이 여기
[최소 예제] (http://stackoverflow.com/help/mcve)를 jsfiddle/plunker/jsbin으로 만들고이 예제에서 관찰 된 오류를 설명해 주시겠습니까? 예제가 가능한 한 작지만 문제가 계속 표시되는지 확인하십시오. 그러면 문제를 훨씬 쉽게 해결할 수 있습니다. –
안녕하세요, 답변을 주셔서 감사합니다, 내가 예제를 만들었지 만, 제대로 작동하지 않아, 당신이 나를 해결할 수 있다면 정말 고마워. http://jsfiddle.net/uderox/Hpyca/2/ – ExCode
당신은 평범한 자바 스크립트가있다. 코드에 구문 오류가 있습니다. 내가 바이올린을 열면 콘솔에서'예상 된 '}'을 볼 수 있습니다. 또한 사용하려고하는 모든 외부 자바 스크립트 라이브러리는 포함하지 않았습니다. 제발 jsfiddle을 실행 가능하게 만들어주세요. –