该代码在打字稿中,我试图在页面加载时显示当前日期时间,并在刷新单击时更新该日期时间。
在.ts文件中,显示日期时间的字符串是这样声明的。
asOfString: KnockoutObservable<string>;
在构造函数中是这样设置的,
this.asOfString = ko.observable(new Date().toDateString() + " " + new Date().toLocaleTimeString());
在html中,它像这样被绑定,
<a class="small button" data-bind="click: updateSummary">Refresh</a>
在刷新按钮中,我试图像这样更新它,
this.asOfString(new Date().toDateString() + " " + new Date().toLocaleTimeString()); //latest date time.
它给我一个错误,指出_this.asOfString不是函数。
请帮忙。
视图模型的代码是这样的,
import ko = require('knockout');
class TodayViewModel {
asOfString: KnockoutObservable<string>;
constructor() {
this.updateSummary();
this.asOfString = ko.observable(new Date().toDateString() + " " + new Date().toLocaleTimeString());
}
updateSummary = () => { // is the function that is bound to refresh button
//want to update this.asOfString here
}
}
export = TodayViewModel;
对于整个应用程序,这对我来说效果很好。我无法说出我的所作所为与您所描述的有所不同,因此,我只介绍了全部内容。
class TodayVM {
asOfString: KnockoutObservable<string>;
constructor() {
this.asOfString = ko.observable('');
this.updateSummary();
}
updateSummary = () => {
this.asOfString(new Date().toDateString() + " " + new Date().toLocaleTimeString())
}
}
window.onload = () => {
ko.applyBindings(new TodayVM());
};
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>TypeScript HTML App</title>
<link rel="stylesheet" href="app.css" type="text/css" />
<script src="app.js"></script>
</head>
<body>
<h1>TypeScript HTML App</h1>
<div data-bind="text:asOfString"></div>
<button data-bind="click:updateSummary">Update</button>
</body>
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script>
</html>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句