2017-05-18 49 views
0

我剛開始學習native-script框架,並且正在關注官方網站上的「JavaScript入門」教程。我有一個Java背景,所以我更熟悉打字稿。我試圖將所有JavaScript代碼替換爲與打字稿等效的代碼。如何使用typescript在本地腳本中實現Observable

到目前爲止一切正常,但是當我到達Chapter three > 3.4: Adding a view model section時,我對如何在打字稿中實現Observable感到困惑。這是從網站的代碼:

var observableModule = require("data/observable"); 

var user = new observableModule.fromObject({ 
    email: "[email protected]", 
    password: "password" 
}); 

而這就是我想出了:

import {Observable} from 'data/observable'; 
class User extends Observable { 
    email = "[email protected]"; 
    password = "password"; 
} 

let user = new User(); 

當我測試了它,它似乎工作。上面的代碼是否等價或錯過了某些東西?

回答

1

是的,這是讓「對象」可觀察的方法。一個不同但也類似的方法是使你的整個「視圖模型」觀察到的,例如:

import { Observable } from "data/observable"; 

export class ViewModel extends Observable {  
    constructor() { 
     super(); 

     this.set("propertyA", 42); 
     this.set("propertyB", "some value"); 
    } 

    public updatedValues() { 
     this.set("propertyA", 3.14); 
     this.set("propertyB", "some new value"); 
    } 
} 

如果你設置ViewModel是頁面上,你可以做你的正常的綁定和對任何更新的bindingContextViewModel的那些屬性將傳播到視圖。

<Label text="{{ propertyA }}"/> 
<Label text="{{ propertyB }}"/> 
+0

謝謝弗拉基米爾 –