我继承了一个淘汰赛项目,而且我在学习的过程中一直在学习,所以我在游泳池中开始的时间比你想要的要深。
总而言之,它是一个带有一系列标签的页面,每个标签都打开了自己的页面。一个选项卡中包含第二组选项卡。每个标签都指向自己的
对我来说奇怪的事情是项目实际上已经定义了一个对象CALLED mvvm,我非常确定它至少令人困惑。
这些结构中只有一个,下面的片段,希望它足以说清楚。
const loadingManager = new THREE.LoadingManager( () => {
const loadingScreen = document.getElementById( 'loading-screen' );
loadingScreen.classList.add( 'fade-out' );
// optional: remove loader from DOM via event listener
loadingScreen.addEventListener( 'transitionend', onTransitionEnd );
} );
主页是documentsview.aspx。所有viewModel都在一个文件中的单个对象中定义为vars,每个页面/选项卡的视图都是一个单独的文件。每个标签的内容都在一个单独的ascx文件中,作为documentsview.aspx中的usercontrols包含在内。这个mvvm对象是整个结构中唯一带有applybindings的对象。
现在,这一切都有效,我赶紧补充一下,所以我认为它被称为mvvm的事实并没有破坏任何东西,因为从技术上来说,我认为你可以随心所欲地调用这些东西,它没有意义不使用这些标准。
所以我认为我的问题是,这个对象到底是什么?它是主页面的模型,还是主页面的视图模型,还是什么?
我还有许多其他问题试图在过程中正确地抓取值和变量,但我不认为通过在此处进行任何更改可以解决它们。我更加努力确保理解结构,以及实际上是什么。
答案 0 :(得分:1)
你的答案的关键在这里
ko.applyBindings(ad.views.documents.viewModel, document.getElementById("documentsView"));
在这里
ko.applyBindings(ad.views.uploadDocuments.viewModel, document.getElementsByClassName("attachDocuments-modal")[0]);
当你应用绑定时,你基本上说,这个对象(参数1)匹配这个元素(参数2);
这是一种非常规的方式来编写Knockout(在我看来),我强烈建议你在learn.knockout上完成约30分钟的教程,它会让你快速上手。