Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js 敲除:绑定到包含句点的ID?_Knockout.js - Fatal编程技术网

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: