我在with
标记
<div id="mapContainer" data-bind="with: contentTabs">
............
<div id="map" data-bind="createMap: { }"></div>
............
</div>
自定义绑定定义如下
ko.bindingHandlers.createMap = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
//Some code which accesses the viewModel
....
}
}
自定义绑定的“viewModel”参数引用“contentTabs”变量(在上面的“with”绑定中定义)。
我想以干净的方式从自定义绑定中访问视图模型(root)。
有可能吗?
在我用“with”绑定包装自定义绑定之前,代码运行良好。 - 如何将“$ root”传递给自定义绑定?
答案 0 :(得分:1)
只需将该值作为附加绑定传递 -
<div id="map" data-bind="createMap: { }, createMapOptions: { parentContext: $root.something }"></div>
然后在您的自定义绑定中获取其他绑定的值 -
ko.bindingHandlers.createMap = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var options = allBindingsAccessor().createMapOptions;
var thisContext = options.parentContext;
}
}