我刚刚开始学习原生脚本框架,并且我正在遵循" 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();
当我测试它时,它似乎工作。以上代码是等同还是我错过了什么?
答案 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 }}"/>