如何使用typescript

时间:2017-05-18 17:40:41

标签: javascript typescript observable nativescript

我刚刚开始学习原生脚本框架,并且我正在遵循" JavaScript入门"来自官方网站的教程。我有Java背景,所以我更熟悉打字稿。我试图将所有JavaScript代码替换为等效的typescript。

到目前为止一切正常,但当我到达Chapter three > 3.4: Adding a view model section时,我对如何在打字稿中实现Observable感到困惑。这是网站上的代码:

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

var user = new observableModule.fromObject({
    email: "user@domain.com",
    password: "password"
});

这就是我想出来的:

import {Observable} from 'data/observable';
class User extends Observable {
    email = "user@domain.com";
    password = "password";
}

let user = new User();

当我测试它时,它似乎工作。以上代码是等同还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

是的,这是制作"对象的方法。观察到的。一种不同但也类似的方法是让你的整个" ViewModel"可观察的例如:

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设置为Page的bindingContext,则可以执行常规绑定,并且ViewModel的这些属性的任何更新都将传播到视图

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