2015-04-06 55 views
0

好了,如果我做這樣的事情與淘汰賽它完美淘汰賽和打字稿與視圖模型外型號不工作

function UserModel() 
{ 
    UserID = ko.observable(); 
    Name = ko.observable(); 
} 

function UserSettingsViewModel() 
{ 
    var user = UserModel(); 
    this.Save = function(user) { SaveUser(user);}; 
} 
ko.applyBindings(new UserSettingsViewModel()); 

試圖做同樣的用打字稿,但它並沒有真正的工作

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); 
}; 

我怎樣才能做到與TypeScript相同,我嘗試了不同的方法,但他們沒有工作。

回答

0

偷偷摸摸的懷疑。你可能錯了this。使用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); 
    } 

} 

更多thishttps://www.youtube.com/watch?v=tvocUcbCupA

+0

事實證明,我的問題是在HTML文檔中,我有$ root.Name,這就是爲什麼它不起作用。 – user3044096 2015-04-06 13:32:07

0

顯然,我的代碼是正確的,工作的,什麼是錯的是我的HTML文檔,我不得不$ root.Name,這就是爲什麼它不是工作,現在它工作正常。