You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/08/15 13:58:00 UTC
[jira] [Commented] (CB-13179) Cordova file plugin onEvent(such as
onload) should be invoked with _realReader as this
[ https://issues.apache.org/jira/browse/CB-13179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16127270#comment-16127270 ]
ASF GitHub Bot commented on CB-13179:
-------------------------------------
GitHub user JiaLiPassion opened a pull request:
https://github.com/apache/cordova-plugin-file/pull/215
CB-13179:(all) invoke onEvent listener with _realReader as applyThis
<!--
Please make sure the checklist boxes are all checked before submitting the PR. The checklist
is intended as a quick reference, for complete details please see our Contributor Guidelines:
http://cordova.apache.org/contribute/contribute_guidelines.html
Thanks!
-->
### Platforms affected
Android,ios,Browser
### What does this PR do?
FileReader.onEvent such as FileReader.onload should call with `this._realReader`
### What testing has been done on this change?
Test with ios Application.
### Checklist
- [x] [Reported an issue](http://cordova.apache.org/contribute/issues.html) in the JIRA database
- [x] Commit message follows the format: "CB-3232: (android) Fix bug with resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform affected.
- [ ] Added automated test coverage as appropriate for this change.
Fix CB-13179, FileReader should invoke onEvent listener with this._realReader as applyThis.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/JiaLiPassion/cordova-plugin-file onevent
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cordova-plugin-file/pull/215.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #215
----
commit 5391ff89547e0a5bad3ee1652f31528c694e2820
Author: JiaLi.Passion <ji...@gmail.com>
Date: 2017-08-15T13:22:30Z
CB-13179:(all) invoke onEvent listener with _realReader as applyThis
----
> Cordova file plugin onEvent(such as onload) should be invoked with _realReader as this
> --------------------------------------------------------------------------------------
>
> Key: CB-13179
> URL: https://issues.apache.org/jira/browse/CB-13179
> Project: Apache Cordova
> Issue Type: Improvement
> Components: cordova-plugin-file
> Environment: Android, ios, Browser
> Reporter: Jia Li
> Priority: Minor
> Labels: features
>
> When `FileReader` add onEvent listener such as `onload`, it will add the listener to inner `_realReader` , but when it invoke the listener, it use the FileReader as `this`.
> 1. When add onload listener in application code.
> ```javascript
> var fileReader = new FileReader();
> fileReader.onload = function() {};
> ```
> it will call `www/FileReader.js defineEvent`
> ```javascript
> function defineEvent(eventName) {
> utils.defineGetterSetter(FileReader.prototype, eventName, function() {
> return this._realReader[eventName] || null;
> }, function(value) {
> this._realReader[eventName] = value;
> });
> }
> ```
> the listener is added to `this._realReader`.
> And when the listener is triggered for example in `readSuccessCallback`
> it will invoke the method with `this`.
> ```javascript
> this.onload(new ProgressEvent("load", {target:this}));
> ```
> in the normal senario, it will ok, but when it work with some polyfilles such as `zone.js of angular4`, it will fail because `zone.js` have some special handling which require the `this` object be the same when add listener and invoke listener.
> https://github.com/angular/zone.js/issues/868
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org