Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模型外部视图模型不工作的敲除和键入脚本_Javascript_Asp.net Mvc_Knockout.js_Typescript - Fatal编程技术网

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,这就是它不能工作的原因。