【问题标题】:How to implement Observable in native-script using typescript如何使用打字稿在本机脚本中实现 Observable
【发布时间】:2017-05-18 17:40:41
【问题描述】:

我刚开始学习原生脚本框架,我正在关注官方网站上的“开始使用 JavaScript”教程。我有Java背景,所以我更熟悉打字稿。我试图将所有 JavaScript 代码替换为等效的打字稿。

到目前为止一切正常,但是当我到达 Chapter three > 3.4: Adding a view model section 时,我对如何在 typescript 中实现 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();

当我测试它时,它似乎工作。以上代码是等效的还是我遗漏了什么?

【问题讨论】:

标签: javascript typescript observable nativescript


【解决方案1】:

是的,这是使“对象”可观察的方法。一种不同但也相似的方法是让您的整个“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 设置为页面的 bindingContext,您可以进行正常绑定,并且对 ViewModel 的这些属性的任何更新都将传播到视图。

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

【讨论】:

  • 谢谢弗拉基米尔
猜你喜欢
  • 1970-01-01
  • 2017-05-01
  • 2021-07-19
  • 2020-12-26
  • 2021-11-08
  • 1970-01-01
  • 2021-09-14
  • 2018-11-17
  • 2015-07-29
相关资源
最近更新 更多