Knockout.js ko.mapping.fromJS添加额外订阅
我正在使用KO绑定剑道窗口中的数据。这是我的html的示例Knockout.js ko.mapping.fromJS添加额外订阅,knockout.js,kendo-ui,knockout-mapping-plugin,kendo-window,knockout-subscribe,Knockout.js,Kendo Ui,Knockout Mapping Plugin,Kendo Window,Knockout Subscribe,我正在使用KO绑定剑道窗口中的数据。这是我的html的示例 <form id="formid"> <span id="window"> <span data-bind:"html:content"></span> </span> </form> newObj-是包含fe信息的JSON对象。按钮名称等 在newObj中还有其他属性。我看到在执行ko.mapping.fromJS之后,一些属性具有getS
<form id="formid">
<span id="window">
<span data-bind:"html:content"></span>
</span>
</form>
newObj-是包含fe信息的JSON对象。按钮名称等
在newObj中还有其他属性。我看到在执行ko.mapping.fromJS
之后,一些属性具有getSubscriptionsCount()==1
。当我尝试更改这些属性时,我的窗口将再次渲染。再次触发“文档准备就绪”
为什么在ko.mapping.fromJS之后,我已经在订阅服务器上获得了一些属性,而在没有订阅服务器的情况下,我又获得了一些属性?或者这可能是剑道窗口的一个问题你能显示你的document.ready函数吗?在document.ready中的形式我有
ko.applyBindings(viewModel,document.getElementById('formId))
和ajax请求将内容获取到viewModel,并且在成功中viewModel.content(data)
当您在对象f.e viewModel.Name()中触摸observable属性时,我看到了这一点KO自动添加用户,所以我认为这不是问题,但问题是为什么kendo window在kendowindow的viewModel发生一些更改时尝试重新发布内容。当我执行(在某些属性上)方法valueHasMutated时,也会发生这种情况。添加订阅服务器也不会在所有属性上发生。我已经改变了这一点,现在我通过jquery而不是KO加载内容。它是有效的。
ko.mapping.fromJS(newObj, {}, viewModel);
ko.applyBindings(viewModel, element);