挖空.js在不同的上下文中注册多个组件
Knockout.js register multiple components in different contexts
我正在尝试使用 knockoutjs 注册多个组件,但来自同一应用程序的不同上下文,导致"错误:您无法多次将绑定应用于同一元素"。
我试图做的是从多个地方调用它。
knockout.components.register('a-name', {
viewModel: AViewModel,
template: { require: 'text!ui/views/a-view.html' }
});
knockout.applyBindings();
如果我在一个地方注册所有组件并制作一次 applyBindings(),这将起作用。但另一方面,这给我带来了多个其他问题。因为我希望我注册的每个组件都彼此独立。
那么我可以在应用程序的不同部分中注册组件吗?
编辑:找到这个答案:挖空:错误:刷新页面时无法多次将绑定应用于同一元素
其中指出 ko.applyBindings() 每个 DOM 元素只能调用一次。我不明白这一点,他们的文档非常少。在使用挖空时,有没有另一种方法可以在需要时注入 html?
我可以在应用的单独部分中注册组件吗?
不,你不能。在致电applyBindings
之前已完成注册。
这并不直接意味着组件必须相互依赖。您需要整个应用的组合根(或每个applyBindings
调用/应用 DOM 区域至少一个),并在其中注册所有组件。组件本身不需要相互了解,不需要说。
请注意,这只是关于注册组件。您仍然可以按需异步加载实际组件。
为什么不在业务逻辑中编写一个全局寄存器函数:
伪代码!
function registerAname()
{
if( knockout.components.contains('a-name'))
return;
knockout.components.register('a-name', {
viewModel: AViewModel,
template: { require: 'text!ui/views/a-view.html' }
});
knockout.applyBindings();
}
C类:注册Aname()
类 x: 注册Aname()
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- React组件等待所需道具进行渲染
- 如何创建带有插槽的vue js组件预加载程序
- KnockoutJS-组件-多个实例
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在react js中将值从一个组件发送到另一个组件
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 当组件准备就绪时,如何在Polymer中动态注册新属性
- 注册组件的非角度和角度版本
- 挖空.js在不同的上下文中注册多个组件
- 注册 MDL 组件
- 在viewModel之前注册淘汰组件的问题
- 动态注册本地Vue.js组件
- 从typescript模块中注册Knockout.js组件视图模型
- 无法在js文件中注册框架组件
- 试图创建一个未注册的xtype组件:
- 使用ExtJS 3的方法注册组件
- 使用无状态组件创建注册表单