@@ -195,7 +195,7 @@ vm.$watchAsObservable('a')
195
195
var vm = new Vue ({
196
196
created () {
197
197
this .$eventToObservable (' customEvent' )
198
- .subscribe ((event ) => console .log (event .name ,event .msg ))
198
+ .subscribe ((event ) => console .log (event .name ,event .msg ))
199
199
}
200
200
})
201
201
@@ -210,6 +210,8 @@ Rx.Observable.interval(500)
210
210
211
211
#### ` $subscribeTo(observable, next, error, complete) `
212
212
213
+ 这是一个添加到实例上的原型方法。可以用它来订阅 obserable,但是让 VueRx 来管理清理 (dispose) 和取消订阅 (unsubscribe)。
214
+
213
215
``` js
214
216
var vm = new Vue ({
215
217
mounted () {
@@ -224,6 +226,10 @@ var vm = new Vue({
224
226
225
227
> 此功能需要 RxJS 。
226
228
229
+ 这是一个添加到实例上的原型方法。使用它从实例的元素的 DOM 事件创建 observable 。这类似于 ` Rx.Observable.fromEvent ` ,但即使在 DOM 实际渲染 之前,` subscriptions ` 函数中也是可用的。
230
+
231
+ ` selector ` 用于寻找组件根元素的子孙节点,如果你想要监听根元素本身,那么传递 ` null ` 作为第一个参数
232
+
227
233
``` js
228
234
var vm = new Vue ({
229
235
subscriptions () {
@@ -234,6 +240,45 @@ var vm = new Vue({
234
240
})
235
241
```
236
242
243
+ #### ` $createObservableMethod(methodName) `
244
+
245
+ > 此功能需要 RxJS 。
246
+
247
+ 将函数调用转换为发出调用参数的 observable 序列。
248
+
249
+ 这是一个添加到实例上的原型方法。用它来根据函数名称创建一个共享的热的 observable 。该函数会被赋值为一个 vm 方法。
250
+
251
+ ``` html
252
+ <custom-form :onSubmit =" submitHandler" ></custom-form >
253
+ ```
254
+ ``` js
255
+ var vm = new Vue ({
256
+ subscriptions () {
257
+ return {
258
+ // 需要 `share` 操作符
259
+ formData: this .$createObservableMethod (' submitHandler' )
260
+ }
261
+ }
262
+ })
263
+ ```
264
+ 你可以使用 ` observableMethods ` 选项使其更为声明式:
265
+
266
+ ``` js
267
+ new Vue ({
268
+ observableMethods: {
269
+ submitHandler: ' submitHandler$'
270
+ // 或者使用数组简写形式: ['submitHandler']
271
+ }
272
+ })
273
+ ```
274
+
275
+ 上面的代码会自动地在实例上创建两样东西:
276
+
277
+ 1 . ` submitHandler ` 方法,它可以使用 ` v-on ` 在模板中进行绑定。
278
+ 2 . ` submitHandler$ ` observalbe, 它是向 ` submitHandler ` 发出调用的流。
279
+
280
+ [ 示例] ( https://github.com/vuejs/vue-rx/blob/master/example/counter-function.html )
281
+
237
282
### 警告
238
283
239
284
你不能使用 ` watch ` 选项来观察 subscriptions ,因为它在 subscriptions 设置之前处理过了。但是你可以在 ` created ` 钩子中使用 ` $watch ` 来代替。
0 commit comments