【发布时间】:2013-11-03 04:33:21
【问题描述】:
我是淘汰赛的新手,我正在尝试从 plurasight 中找出一种做法,它绑定一个 javascript 数组并在网页中显示为网格。只是无法弄清楚我犯了什么错误,因为我做了视频所做的事情。 以下是我的代码:谁能帮我一把?
<div id="tagsList">
<div>
<h2>Tags</h2>
</div>
<div>
<input type="text" placeholder="Add New Tag" />
<button>+ Add</button>
<ul data-bind="template: {name: 'tagsTempl', foreach: tags}"></ul>
</div>
</div>
<script id="tagsTempl" type="text/html">
< li > < span > $ {
Name
}
$ {
(new Date).toLocaleTimeString()
} < /span>
<div>
<a href="#" >Edit</a > < a href = "#" > Delete < /a>
</div > < /li>
</script>
$(function () {
var data = [{
Id: 1,
Name: "Ball Handling"
}, {
Id: 2,
Name: "Passing"
}, {
Id: 3,
Name: "Shooting"
}, {
Id: 4,
Name: "Rebounding"
}, {
Id: 5,
Name: "Transition"
}, {
Id: 6,
Name: "Defense"
}, {
Id: 7,
Name: "Team Offense"
}, {
Id: 8,
Name: "Team Defense"
}];
var viewModel = {
//data
tags: ko.observableArray(data),
tagToAdd: ko.observable(""),
//behaviours
addTag: function () {
this.tags.push({
Name: this.tagToAdd()
});
this.addTag("");
}
};
ko.applyBindings(viewModel);
});
我的代码也是http://jsfiddle.net/hanxuema/NTYLD/
谢谢
更新
这是课程页面
这是我做的...
【问题讨论】:
-
有什么问题?请更清楚地描述您预期会发生什么以及实际发生了什么。另外,为什么你的标记中有所有这些额外的空格,为什么你有一个包含其他元素的
<script>元素? -
$未定义。您没有为文档就绪处理程序包括 jQuery。看,当我们移除包装$(function(){...})时,我们会得到一些输出:jsfiddle.net/NTYLD/1 -
@ahren 谢谢,但是,您的版本仍然显示 html 标签。你知道如何让它显示来自js数组的实际数据吗,请看我更新中的图片。
-
@nnnnnn 谢谢。请看我的更新。为什么脚本元素包含其他元素?我不确定,这是视频课程的代码.....
-
@nnnnnn - 包含其他元素但具有
type="text/html"或type="template/html"属性的脚本元素通常用于模板。浏览器会忽略script元素的内容,但您仍然可以检索它进行处理。
标签: jquery html data-binding knockout.js