我对 knockout 还很陌生,在应用绑定(bind)和多个 View 时,我不知道如何使用 ASP.NET MVC 最好地构建 knockout 。我了解如何在单页应用程序中做到这一点。但我的应用程序由多个服务器端 Controller 和多个 View 组成。每个 View 都可以有自己的 knockout View 模型。
我应该何时以及如何应用绑定(bind)?我最后加载所有 JavaScript,这意味着我无法内联调用我的 View 模型。
使用某种 MasterViewModel 然后在我的 View 中使用 with 绑定(bind)是一个好习惯吗(这是我能想到的唯一解决方案)?
最佳答案
是的,这是一个很好的实践,因为如果您尝试为多个 View 创建单个 View 模型,那么一切看起来都很复杂并且可读性会丢失(完全取决于复杂程度)。
你必须尝试这样的事情才能使事情变得可读且简单
查看模型:
var MasterViewModel = {
vm1 : new ViewModel1(),
vm2 : new ViewModel2(),
vm3 : new ViewModel3(),
vm4 : new ViewModel4(),
}
ko.applyBindings(MasterViewModel);
另一种可能的方法可以很好地工作,只需向 ko.applybindings 添加额外的参数来区分哪个 View 属于哪个 View 模型
示例:
//view
<div id='viewmodel1'>
</div>
<div id='viewmodel2'>
</div>
var vm1 = function(){ //code}
var vm2 = function(){ //code}
ko.applyBindings(new vm1(), document.getElementById("viewmodel1"));
ko.applyBindings(new vm2(), document.getElementById("viewmodel2"));
如果我记得足够清楚,stack-overflow 中很少有类似的帖子,您可以引用
关于javascript - Knockout 和 ASP.NET MVC 多页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755724/