【问题标题】:Knockout - custom binding inside `with` tag - how to pass "$root " to custom binding?淘汰赛 - `with` 标记内的自定义绑定 - 如何将“$root”传递给自定义绑定?
【发布时间】:2014-01-09 01:01:04
【问题描述】:

我在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”绑定中定义)。

我想以干净的方式从自定义绑定访问视图模型(根)。

有可能吗?

在我通过“with”绑定包装自定义绑定之前,代码运行良好。 - 如何将“$root”传递给自定义绑定?

【问题讨论】:

    标签: javascript knockout.js


    【解决方案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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多