Knockout.js 敲除:绑定到包含句点的ID?
我有一个类似以下内容的下拉列表:Knockout.js 敲除:绑定到包含句点的ID?,knockout.js,Knockout.js,我有一个类似以下内容的下拉列表: //等 它从ASP.NET MVC获取此ID,它是对象的属性 通过ko.applyBindings(ViewModel,$(“body”)[0])应用绑定 页面加载时,会发生以下错误: knockout-3.4.2.js:73 Uncaught TypeError: Unable to process binding "visible: function(){return (($root.ComparingProperty() !='') &
//等
它从ASP.NET MVC获取此ID,它是对象的属性
通过ko.applyBindings(ViewModel,$(“body”)[0])应用绑定代码>
页面加载时,会发生以下错误:
knockout-3.4.2.js:73 Uncaught TypeError: Unable to process binding "visible: function(){return (($root.ComparingProperty() !='') && ($root.Object1.PropertyX() != $root.ComparingProperty())) }"
Message: Cannot read property 'PropertyX' of undefined
$root
相当于ko.dataFor(document.body)
在此之后,控制台中的$root
显示Object1.PropertyX
确实存在,并且Symbol(\u latestValue)
具有页面加载时的属性值。但是,$root.Object1
是未定义的,并且符号(\u latestValue)
不会随下拉列表而更改
我遗漏了什么?Knockout使用点符号在对象中导航data bind=“value:Object1.PropertyX”
表示对象Object1
的绑定PropertyX
,它抛出$root。Object1未定义
错误,因为Object1
不存在
您可以使用$data
通过括号符号引用当前绑定对象的属性:data bind=“value:$data['Object1.PropertyX']”
。请看以下示例:
ko.applyBindings({
'Object1.PropertyX':ko.observable()
});代码>
选择1
选择2
选择3
Object1.PropertyX: