Javascript 敲除js内置变量($data)
我知道,$data变量提供对您上下文中当前对象的访问。 我还可以使用foreach绑定并将属性名添加到books对象Javascript 敲除js内置变量($data),javascript,knockout.js,Javascript,Knockout.js,我知道,$data变量提供对您上下文中当前对象的访问。 我还可以使用foreach绑定并将属性名添加到books对象 这段代码迭代名为books的数组,结果显示在DOM中作为项目列表 但是,如果我将该数组名称从books更改为任何其他名称,它将不显示项目 使用KnockoutJS进行数据绑定 var ViewModel=函数(){ var self=这个; self.books=[ “地球之旅”, “有效的学习计划” ]; }; var myModel=new ViewModel();
这段代码迭代名为books的数组,结果显示在DOM中作为项目列表 但是,如果我将该数组名称从books更改为任何其他名称,它将不显示项目
使用KnockoutJS进行数据绑定
var ViewModel=函数(){
var self=这个;
self.books=[
“地球之旅”,
“有效的学习计划”
];
};
var myModel=new ViewModel();
ko.应用绑定(myModel);
以下是将数组名称更改为标题后导致错误的代码
<!DOCTYPE html>
<html>
<head>
<title>Data Binding with KnockoutJS</title>
</head>
<body>
<ul >
<li data-bind="text: $data"></li>
</ul>
<script type='text/javascript' src='knockout-3.4.2.js'></script>
<script>
var ViewModel = function() {
var self = this;
self.titles= [
'Journy to the earth',
'effective study plans'
];
};
ko.applyBindings(ViewModel);
</script>
</body>
</html>
使用KnockoutJS进行数据绑定
var ViewModel=函数(){
var self=这个;
self.titles=[
“地球之旅”,
“有效的学习计划”
];
};
应用绑定(视图模型);
问题在于更改变量名时忽略了foreach部分:
<ul >
<!-- ko foreach: books -->
<li data-bind="text: $data"></li>
<!-- /ko -->
</ul>
你改成
<ul >
<li data-bind="text: $data"></li>
</ul>
<ul >
<!-- ko foreach: titles -->
<li data-bind="text: $data"></li>
<!-- /ko -->
</ul>
但应该改成
<ul >
<li data-bind="text: $data"></li>
</ul>
<ul >
<!-- ko foreach: titles -->
<li data-bind="text: $data"></li>
<!-- /ko -->
</ul>
请注意,我更改了foreach指令以使用新的变量名。请显示不起作用的代码。@Salketer添加了itthanks@Salketer。我认为这只是注释,对代码执行没有影响。它们确实是“just”html注释,但它们被knockout使用。我在哪里可以找到这些注释是如何被knockout操纵的?请参见指令开头的“ko”和结尾的“/ko”