nativescript-observable-subscribe
为 NativeScript 添加观察者订阅功能的模块
npm i --save nativescript-observable-subscribe

nativescript-observable-subscribe

NativeScript 模块,用于为观察者添加订阅支持。可以通过 NativeScript 文档中找到的标准 addEventListener 技术来监听观察者变化,但这是一种更方便的订阅方法,通过隔离单个属性的处理器来保持代码整洁。由于 NativeScript 不断进化,订阅解决方案可能会在核心项目中以 tns 模块的形式实现,从而使此模块过时;因此,应关注这一点。

安装

从您的项目 app 目录中运行 npm install nativescript-observable-subscribe --save

.
├── app <------------------------------ run npm install from here
│ ├── app.css
│ ├── app.js
│ ├── bootstrap.js
│ ├── main-page.js
│ ├── main-page.xml
│ ├── node_modules
│ │ └── nativescript-observable-subscribe <-- The install will place the module's code here
│ │ └── ...
│ └── package.json <----------------- The install will register “nativescript-observable-subscribe” as a dependency here
│ └── tns_modules
│ └── ...
└── platforms
├── android
└── ios

如果 npm 最终无法为您工作,您可以直接将此存储库的 observablesubscribe.js 文件复制并粘贴到您的应用中,并直接引用它。

用法

要使用 Observable Subscribe 模块,您必须首先从您的项目 node_modules 目录中使用 require() 引用它

require( "./node_modules/nativescript-observable-subscribe/observablesubscribe" );

一旦在代码中引入了模块,它就会执行并将订阅/取消订阅函数添加到观察者。您将能够使用它来接收属性更改的通知,如下所示

// viewmodel.js
...
var mainViewModel = new HelloWorldModel();
var counterPropName = 'counter';

mainViewModel.subscribe(counterPropName, function(args){
if (this.get(counterPropName) <= 0) {
this.set(messagePropName, "Hoorraaay! You unlocked the NativeScript clicker achievement!");
}
else {
this.set(messagePropName, this.get(counterPropName) + " taps left");
}
}, mainViewModel);

exports.mainViewModel = mainViewModel;

如果您想从通知中取消订阅属性,可以使用取消订阅函数,如下所示

// viewmodel.js
...
mainViewModel.unsubscribe(counterPropName, callback);
...

感谢 TJ VanToll 为上面的目录结构图形和此文档模板提供模板