Knockout.js 包装淘汰品时出现例外情况';模板&x27;使用我自己的自定义绑定绑定
我正在尝试基于模板绑定编写自定义绑定。想法是让模板具有自己的视图模型类,但我不想将该类的实例添加到父视图模型(至少不在代码中。在执行时添加实例对我来说没问题) 为了理解我在这里试图实现的是一个示例:我想构建高级slider,我不希望slider的html出现在模板中,slider也需要它自己的类,但我不想将slider的视图模型实例添加到父视图模型中。这是我的代码,它一开始工作,看起来它一开始呈现模板,但随后抛出异常,我不明白为什么 html:Knockout.js 包装淘汰品时出现例外情况';模板&x27;使用我自己的自定义绑定绑定,knockout.js,templatebinding,custom-binding,Knockout.js,Templatebinding,Custom Binding,我正在尝试基于模板绑定编写自定义绑定。想法是让模板具有自己的视图模型类,但我不想将该类的实例添加到父视图模型(至少不在代码中。在执行时添加实例对我来说没问题) 为了理解我在这里试图实现的是一个示例:我想构建高级slider,我不希望slider的html出现在模板中,slider也需要它自己的类,但我不想将slider的视图模型实例添加到父视图模型中。这是我的代码,它一开始工作,看起来它一开始呈现模板,但随后抛出异常,我不明白为什么 html: 在init函数中,您需要返回ko.bindingH
在
init
函数中,您需要返回ko.bindingHandlers.template.init
的值或返回{controlsDescendantBindings:true}
这告诉Knockout绑定将负责将绑定应用到子元素。否则,Knockout将继续对子元素应用与全局视图模型的绑定,这会导致异常,因为internalValue
不是顶级视图模型的属性
这部分文档:这篇博文有助于进一步解释
ControlsDescentBindings
:在init
函数中,您需要返回ko.bindingHandlers.template.init
的值或返回{ControlsDescentBindings:true}
这告诉Knockout绑定将负责将绑定应用到子元素。否则,Knockout将继续对子元素应用与全局视图模型的绑定,这会导致异常,因为internalValue
不是顶级视图模型的属性
文档的这一部分:这篇博文帮助解释了
控制场景绑定
进一步:我做了一个框架,用于根据模板绑定viewmodels。看这里,
它按照约定工作,因此如果您有一个名为MyViewModel的模型成员,那么它将查找名为MyView的模板
<div data-name="myMember"></div>
我做了一个框架,用于根据模板绑定viewmodels。看这里, 它按照约定工作,因此如果您有一个名为MyViewModel的模型成员,那么它将查找名为MyView的模板
<div data-name="myMember"></div>
谢谢,这就是问题所在。我以为我看了所有的文件和资料,显然没有引起足够的注意。我在想,如果ko检测到双重绑定,它可能会提供更好的异常,我花了几个小时试图找出错误的原因和位置Andrej,请参阅我的asnwer以获得解决初始问题的替代方法(模型>视图绑定)谢谢,这就是问题所在。我以为我看了所有的文件和资料,显然没有引起足够的注意。我在想,如果ko检测到双重绑定,它可能会提供更好的异常。我花了几个小时试图找出出错的原因和位置。Andrej,请参阅我的asnwer以获得解决初始问题的替代方法(模型>视图绑定)
<div data-name="myMember"></div>