这是一个非常简单的问题,所以我真的希望有一个简单的解决方案。我不想使用任何外部模板库,因为虽然我熟悉EmberJS,但对于我目前正在处理的应用程序来说,Ember会有点过分。
我已经设置了一个快速的JSFiddle:http://jsfiddle.net/zeEFP/3/
答案 0 :(得分:1)
ko.applyBindings()将viewmodel作为参数。我已经更新了你的小提琴:
之前失败是因为你告诉knockout在ViewModel对象的ViewModel属性中寻找属性
答案 1 :(得分:1)
在您最初的小提琴中,您将视图模型应用于整个dom(或更具体地说是window.document.body
),因为您没有提供上下文元素。因此,您不需要with
绑定(with
绑定会创建新的绑定上下文,而您已经处于正确的绑定上下文中)
请参阅:http://jsfiddle.net/zeEFP/10/
如果您希望使用多个视图模型,则可以为applyBindings
方法提供上下文:
ko.applyBindings(new FirstViewModel(), document.getElementById("someId));
请在此处查看更新的小提琴:http://jsfiddle.net/zeEFP/8/
如果您不希望有额外的标记作为applyBindings
的上下文提供,您可以改为使用覆盖范围的视图模型,然后使用with
绑定为部分内容创建新的上下文页面
请参阅:http://jsfiddle.net/zeEFP/11/
希望有助于为您解决问题