我知道 ko.applyBindings可以接受第二个参数,它将是绑定到的DOM元素
但是我的情况不同,我有一个大页面,我想通过使用为其指定一个视图模型
ko.applyBindings(bigModel)
然后在页面中间有一个小的侧边栏部分,我想通过使用为其指定另一个视图模型 ko.applyBindings(smallModel, $("#sidebar")[0])
当我在小#sidebar部分使用敲除来使用有界属性时,会引发错误,Unable to parse bindings但仍绑定值(例如<span 'text:propertyOnSmallModel' />),之后我尝试将这些属性添加为空属性bigModel,但没有抛出。
我如何应用此方法,使用两种视图模型,一种用于整个页面,另一种用于特定的部分
您可以使用以下处理程序告诉Knockout.js 停止绑定:
ko.bindingHandlers.stopBinding = {
init: function ()
{
return { controlsDescendantBindings: true };
}
};
ko.virtualElements.allowedBindings.stopBinding = true;
Run Code Online (Sandbox Code Playgroud)
然后使用:
<!-- ko stopBinding: true -->
<!-- /ko -->
Run Code Online (Sandbox Code Playgroud)
网页中的html注释停止绑定。
因此,您将较大的模型绑定到整个页面,使用上面的html注释停止将该模型绑定到您的特定部分。
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |