gpt4 book ai didi

javascript - knockoutjs 绑定(bind)的问题

转载 作者:行者123 更新时间:2023-11-30 12:59:30 24 4
gpt4 key购买 nike

我是 knockoutjs 的新手,我的绑定(bind)不起作用。什么都不显示。

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="EN" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/xml; charset=utf-8" />
<title></title>
<script type='text/javascript' src='jquery-1.10.2.min.js'></script>
<script type='text/javascript' src='knockout-2.3.0.js'></script>
<script type='text/javascript' src='a.js'></script>
</head>
<body>

<table>
<tbody data-bind="foreach: Timelines">
<tr>
<td data-bind="text: Name"></td>
</tr>
</tbody>
</table>


</body>
</html>

a.js:

    function Event(EventId, TimelineId, Date, Description) {
var self = this;
self.EventId = EventId;
self.TimelineId = TimelineId;
self.Date = Date;
self.Description = Description;
}

function Timeline(TimelineId, Name, Color, PublicName) {
var self = this;
self.TimelineId = TimelineId;
self.Name = ko.observable(Name);
self.Color = ko.observable(Color);
self.PublicName = ko.observable(PublicName);

self.Events = ko.observableArray();
}

function TimelinesViewModel() {
var self = this;
self.Timelines = ko.observableArray([
new Timeline(1, 'Elso', 'lightgreen', 'abc'),
new Timeline(2, 'Masodik', 'pink', 'def')
]);
self.StartDate = new Date();
self.EndDate = new Date();
}

ko.applyBindings(new TimelinesViewModel());

我做错了什么?

最佳答案

因为您包含了 a.js在 header 中,它在加载 DOM 之前执行。

但是 ko.applyBindings需要在加载 DOM 后调用(参见文档:Activating Knockout section)。

所以你有两个选择:

移动<script type='text/javascript' src='a.js'></script>body里面在你的 table 之后.

或者等待 DOM 加载事件(例如使用 jQuery ):

$(function(){
ko.applyBindings(new TimelinesViewModel());
});

关于javascript - knockoutjs 绑定(bind)的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17762894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com