현재 Knockout.js viewModel 구조를 사용하여 요소를로드하는 데 문제가 있습니다. 웹 사이트에 애니메이션을 추가하기 위해 Sammy.js를 사용하여 URL을 뷰에 매핑하고 jqueryUI를 사용하고 있습니다. "정상적인"요소를로드하는 데 문제가 없지만이 응용 프로그램에서는 그래프와 차트를 사용해야합니다. Chartist.js와 JustGage.js를 사용하고 있습니다. 또한 필자는 Parse를 데이터베이스로 사용하고 있음에 유의해야합니다.SPA에서 녹아웃 기반보기로 요소로드 유지
문제는 뷰를 교체 할 때 게이지와 차트가 표시되기 전에로드되지 않아 본질적으로 애니메이션 경험을 망칠 수 있다는 것입니다. 뷰가 먼저로드되면 내용이 올바르게로드됩니다. 어떤 종류의 사용자 정의 바인딩을 사용해야합니까, 아니면 차트와 게이지가 웹 응용 프로그램에서보기 전에 올바르게로드되도록 고정시킬 수 있습니까? 내 코드를 JSFiddle에로드했습니다. here.
먼저로드 된 뷰를 쉽게 변경할 수 있도록 변수 startView를 만들었습니다. 나는 내 문제에 대한 해결책을 알아 낸
var View = function (title, templateName, data) {
var self = this;
this.title = title;
this.templateName = templateName;
this.data = data;
};
var dashboardView = {
//ko.observables here...
};
//viewModel which consists of multiple subviews
var viewModel = {
views: ko.observableArray([
new View("Dashboard", "dashboard", dashboardView),
selectedView: ko.observable()
};
//Apply knockout bindings
ko.applyBindings(viewModel);