Javascript 模型外部视图模型不工作的敲除和键入脚本
好的,如果我用击倒法做这样的事情,效果会很好Javascript 模型外部视图模型不工作的敲除和键入脚本,javascript,asp.net-mvc,knockout.js,typescript,Javascript,Asp.net Mvc,Knockout.js,Typescript,好的,如果我用击倒法做这样的事情,效果会很好 function UserModel() { UserID = ko.observable(); Name = ko.observable(); } function UserSettingsViewModel() { var user = UserModel(); this.Save = function(user) { SaveUser(user);}; } ko.applyBindings(new UserSettin
function UserModel()
{
UserID = ko.observable();
Name = ko.observable();
}
function UserSettingsViewModel()
{
var user = UserModel();
this.Save = function(user) { SaveUser(user);};
}
ko.applyBindings(new UserSettingsViewModel());
尝试对typescript执行相同的操作,但实际上不起作用
declare var ko: any;
interface IUser {
UserID: any;
Username: any;
Name: any;
LastName: any;
CreatedOn: any;
LastLogin: any;
Picture: any;
}
class User implements IUser{
UserID = ko.observable('');
Username = ko.observable('');
Name = ko.observable('');
LastName = ko.observable('');
CreatedOn= ko.observable('');
LastLogin= ko.observable('');
Picture = ko.observable('');
}
function SaveUser(userSetting: any) : void
{
alert("I was saved!");
}
function EditUser(userSetting: any): void {
alert("I was Edited!");
}
function DeleteUser(userSetting: any): void {
alert("I was Deleted!");
}
class UserSettingsViewModel
{
userSetting: any;
constructor()
{
this.userSetting = (<any>User)();
}
Save()
{
SaveUser(this.userSetting);
}
Delete()
{
DeleteUser(this.userSetting);
}
Edit()
{
EditUser(this.userSetting);
}
}
window.onload = () => {
var ViewModel = new UserSettingsViewModel();
ko.applyBindings(ViewModel);
};
声明var ko:any;
接口IUser{
UserID:any;
用户名:任意;
名称:任何;
姓氏:任何;
CreatedOn:任何;
最后登录:任何;
图片:任何;
}
类用户实现IUser{
UserID=ko.可观察(“”);
用户名=ko.可观察(“”);
名称=ko.可观察(“”);
LastName=ko.可观察(“”);
CreatedOn=ko.可观察(“”);
LastLogin=ko.可观察(“”);
Picture=ko.可观察(“”);
}
函数SaveUser(userSetting:any):void
{
警惕(“我得救了!”);
}
函数EditUser(用户设置:任意):void{
警惕(“我被编辑了!”);
}
函数DeleteUser(userSetting:any):void{
警告(“我被删除了!”);
}
类UserSettingsViewModel
{
用户设置:任意;
构造函数()
{
this.userSetting=(User)();
}
保存()
{
SaveUser(this.userSetting);
}
删除()
{
DeleteUser(此.userSetting);
}
编辑()
{
EditUser(此.userSetting);
}
}
window.onload=()=>{
var ViewModel=new usersetingsviewmodel();
应用绑定(视图模型);
};
我怎么能用TypeScript做同样的事情呢?我尝试过不同的方法,但都不管用。鬼鬼祟祟的怀疑。您可能有错误的
此。使用lambda:
function SaveUser(userSetting: any) : void
{
alert("I was saved!");
}
function EditUser(userSetting: any): void {
alert("I was Edited!");
}
function DeleteUser(userSetting: any): void {
alert("I was Deleted!");
}
class UserSettingsViewModel
{
userSetting: any;
constructor()
{
this.userSetting = (<any>User)();
}
Save = () =>
{
SaveUser(this.userSetting);
}
Delete = () =>
{
DeleteUser(this.userSetting);
}
Edit = () =>
{
EditUser(this.userSetting);
}
}
函数SaveUser(userSetting:any):void
{
警惕(“我得救了!”);
}
函数EditUser(用户设置:任意):void{
警惕(“我被编辑了!”);
}
函数DeleteUser(userSetting:any):void{
警告(“我被删除了!”);
}
类UserSettingsViewModel
{
用户设置:任意;
构造函数()
{
this.userSetting=(显然,我的代码是正确的,可以正常工作,错误的是我的HTML文档,我有$root.Name,这就是它不能正常工作的原因,它现在可以正常工作。我的问题出在HTML文档中,我有$root.Name,这就是它不能工作的原因。