mobx-angular
Advanced tools
Comparing version 2.0.0 to 2.0.1
@@ -0,3 +1,7 @@ | ||
<a name="2.0.1"></a> | ||
# 2.0.1 (2017-12-05) | ||
* Fixed console.log | ||
<a name="2.0.0"></a> | ||
# 2.0.0 (2017-10-05) | ||
# 2.0.0 (2017-11-30) | ||
* Detaching from CD by default in mobxAutorun (allow to override with dontDetach=true) | ||
@@ -4,0 +8,0 @@ |
@@ -12,4 +12,5 @@ import { ViewContainerRef, TemplateRef, Renderer, OnInit, OnDestroy } from '@angular/core'; | ||
ngOnInit(): void; | ||
shouldDetach(): boolean; | ||
autoDetect(view: any): void; | ||
ngOnDestroy(): void; | ||
} |
@@ -15,10 +15,12 @@ import { Directive, ViewContainerRef, TemplateRef, Renderer, Input } from '@angular/core'; | ||
this.dispose(); | ||
if (this.shouldDetach()) { | ||
this.view.detach(); | ||
} | ||
this.autoDetect(this.view); | ||
mobxAngularDebug(this.view, this.renderer, this.dispose); | ||
}; | ||
MobxAutorunDirective.prototype.shouldDetach = function () { | ||
return !this.mobxAutorun || !this.mobxAutorun.dontDetach; | ||
}; | ||
MobxAutorunDirective.prototype.autoDetect = function (view) { | ||
if (!this.mobxAutorun || !this.mobxAutorun.dontDetach) { | ||
console.log('detach'); | ||
view.detach(); | ||
} | ||
var autorunName = view._view.component | ||
@@ -48,2 +50,2 @@ ? view._view.component.constructor.name + ".detectChanges()" // angular 4+ | ||
export { MobxAutorunDirective }; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9kaXJlY3RpdmVzL21vYngtYXV0b3J1bi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQUEsRUFBVyxnQkFBQSxFQUFrQixXQUFBLEVBQTJCLFFBQUEsRUFBNkIsS0FBQSxFQUFNLE1BQU8sZUFBQSxDQUFnQjtBQUMzSCxPQUFPLEVBQUUsT0FBQSxFQUFRLE1BQU8sTUFBQSxDQUFPO0FBQy9CLE9BQU8sRUFBRSxnQkFBQSxFQUFpQixNQUFPLDZCQUFBLENBQThCO0FBRy9EO0lBTUUsOEJBQ1ksV0FBNkIsRUFDN0IsYUFBK0IsRUFDL0IsUUFBa0I7UUFGbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUnBCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztJQVM5QixDQUFDO0lBRUgsdUNBQVEsR0FBUjtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFcEUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCx5Q0FBVSxHQUFWLFVBQVcsSUFBSTtRQUNiLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2NBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHFCQUFrQixDQUFDLGFBQWE7Y0FDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHFCQUFrQixDQUFDLENBQUMsWUFBWTtRQUVyRixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FDcEIsV0FBVyxFQUNYLGNBQU0sT0FBQSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBdkIsQ0FBdUIsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCwwQ0FBVyxHQUFYO1FBQ0UsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBQ0ksK0JBQVUsR0FBMEI7UUFDM0MsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxFQUFHLEVBQUU7S0FDM0QsQ0FBQztJQUNGLGtCQUFrQjtJQUNYLG1DQUFjLEdBQW1FLGNBQU0sT0FBQTtRQUM5RixFQUFDLElBQUksRUFBRSxXQUFXLEdBQUc7UUFDckIsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEdBQUc7UUFDMUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxHQUFHO0tBQ2pCLEVBSjZGLENBSTdGLENBQUM7SUFDSyxtQ0FBYyxHQUEyQztRQUNoRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtLQUNoQyxDQUFDO0lBQ0YsMkJBQUM7Q0FwREQsQUFvREMsSUFBQTtTQXBEWSxvQkFBb0IiLCJmaWxlIjoibW9ieC1hdXRvcnVuLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmLCBIb3N0TGlzdGVuZXIsIFJlbmRlcmVyLCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGF1dG9ydW4gfSBmcm9tICdtb2J4JztcbmltcG9ydCB7IG1vYnhBbmd1bGFyRGVidWcgfSBmcm9tICcuLi91dGlscy9tb2J4LWFuZ3VsYXItZGVidWcnO1xuXG5cbmV4cG9ydCBjbGFzcyBNb2J4QXV0b3J1bkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIHRlbXBsYXRlQmluZGluZ3MgPSB7fTtcbiAgcHJvdGVjdGVkIGRpc3Bvc2U6IGFueTtcbiAgcHJvdGVjdGVkIHZpZXc6IGFueTtcbiAgIG1vYnhBdXRvcnVuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyKSB7XG4gICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlldyA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG5cbiAgICBpZiAodGhpcy5kaXNwb3NlKSB0aGlzLmRpc3Bvc2UoKTtcblxuICAgIHRoaXMuYXV0b0RldGVjdCh0aGlzLnZpZXcpO1xuICAgIG1vYnhBbmd1bGFyRGVidWcodGhpcy52aWV3LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmRpc3Bvc2UpO1xuICB9XG5cbiAgYXV0b0RldGVjdCh2aWV3KSB7XG4gICAgaWYgKCF0aGlzLm1vYnhBdXRvcnVuIHx8ICF0aGlzLm1vYnhBdXRvcnVuLmRvbnREZXRhY2gpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdkZXRhY2gnKTtcbiAgICAgIHZpZXcuZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXV0b3J1bk5hbWUgPSB2aWV3Ll92aWV3LmNvbXBvbmVudFxuICAgICAgPyBgJHt2aWV3Ll92aWV3LmNvbXBvbmVudC5jb25zdHJ1Y3Rvci5uYW1lfS5kZXRlY3RDaGFuZ2VzKClgIC8vIGFuZ3VsYXIgNCtcbiAgICAgIDogYCR7dmlldy5fdmlldy5wYXJlbnRWaWV3LmNvbnRleHQuY29uc3RydWN0b3IubmFtZX0uZGV0ZWN0Q2hhbmdlcygpYDsgLy8gYW5ndWxhciAyXG5cbiAgICB0aGlzLmRpc3Bvc2UgPSBhdXRvcnVuKFxuICAgICAgYXV0b3J1bk5hbWUsXG4gICAgICAoKSA9PiB2aWV3WydkZXRlY3RDaGFuZ2VzJ10oKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5kaXNwb3NlKSB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxuc3RhdGljIGRlY29yYXRvcnM6IERlY29yYXRvckludm9jYXRpb25bXSA9IFtcbnsgdHlwZTogRGlyZWN0aXZlLCBhcmdzOiBbeyBzZWxlY3RvcjogJ1ttb2J4QXV0b3J1bl0nIH0sIF0gfSxcbl07XG4vKiogQG5vY29sbGFwc2UgKi9cbnN0YXRpYyBjdG9yUGFyYW1ldGVyczogKCkgPT4gKHt0eXBlOiBhbnksIGRlY29yYXRvcnM/OiBEZWNvcmF0b3JJbnZvY2F0aW9uW119fG51bGwpW10gPSAoKSA9PiBbXG57dHlwZTogVGVtcGxhdGVSZWYsIH0sXG57dHlwZTogVmlld0NvbnRhaW5lclJlZiwgfSxcbnt0eXBlOiBSZW5kZXJlciwgfSxcbl07XG5zdGF0aWMgcHJvcERlY29yYXRvcnM6IHtba2V5OiBzdHJpbmddOiBEZWNvcmF0b3JJbnZvY2F0aW9uW119ID0ge1xuJ21vYnhBdXRvcnVuJzogW3sgdHlwZTogSW5wdXQgfSxdLFxufTtcbn1cblxuaW50ZXJmYWNlIERlY29yYXRvckludm9jYXRpb24ge1xuICB0eXBlOiBGdW5jdGlvbjtcbiAgYXJncz86IGFueVtdO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9kaXJlY3RpdmVzL21vYngtYXV0b3J1bi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQUEsRUFBVyxnQkFBQSxFQUFrQixXQUFBLEVBQTJCLFFBQUEsRUFBNkIsS0FBQSxFQUFNLE1BQU8sZUFBQSxDQUFnQjtBQUMzSCxPQUFPLEVBQUUsT0FBQSxFQUFRLE1BQU8sTUFBQSxDQUFPO0FBQy9CLE9BQU8sRUFBRSxnQkFBQSxFQUFpQixNQUFPLDZCQUFBLENBQThCO0FBRy9EO0lBTUUsOEJBQ1ksV0FBNkIsRUFDN0IsYUFBK0IsRUFDL0IsUUFBa0I7UUFGbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBUnBCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztJQVM5QixDQUFDO0lBRUgsdUNBQVEsR0FBUjtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFcEUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVqQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELDJDQUFZLEdBQVo7UUFDRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDM0QsQ0FBQztJQUVELHlDQUFVLEdBQVYsVUFBVyxJQUFJO1FBQ2IsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2NBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHFCQUFrQixDQUFDLGFBQWE7Y0FDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHFCQUFrQixDQUFDLENBQUMsWUFBWTtRQUVyRixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FDcEIsV0FBVyxFQUNYLGNBQU0sT0FBQSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBdkIsQ0FBdUIsQ0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCwwQ0FBVyxHQUFYO1FBQ0UsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBQ0ksK0JBQVUsR0FBMEI7UUFDM0MsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxFQUFHLEVBQUU7S0FDM0QsQ0FBQztJQUNGLGtCQUFrQjtJQUNYLG1DQUFjLEdBQW1FLGNBQU0sT0FBQTtRQUM5RixFQUFDLElBQUksRUFBRSxXQUFXLEdBQUc7UUFDckIsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEdBQUc7UUFDMUIsRUFBQyxJQUFJLEVBQUUsUUFBUSxHQUFHO0tBQ2pCLEVBSjZGLENBSTdGLENBQUM7SUFDSyxtQ0FBYyxHQUEyQztRQUNoRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtLQUNoQyxDQUFDO0lBQ0YsMkJBQUM7Q0F0REQsQUFzREMsSUFBQTtTQXREWSxvQkFBb0IiLCJmaWxlIjoibW9ieC1hdXRvcnVuLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmLCBIb3N0TGlzdGVuZXIsIFJlbmRlcmVyLCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGF1dG9ydW4gfSBmcm9tICdtb2J4JztcbmltcG9ydCB7IG1vYnhBbmd1bGFyRGVidWcgfSBmcm9tICcuLi91dGlscy9tb2J4LWFuZ3VsYXItZGVidWcnO1xuXG5cbmV4cG9ydCBjbGFzcyBNb2J4QXV0b3J1bkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIHRlbXBsYXRlQmluZGluZ3MgPSB7fTtcbiAgcHJvdGVjdGVkIGRpc3Bvc2U6IGFueTtcbiAgcHJvdGVjdGVkIHZpZXc6IGFueTtcbiAgIG1vYnhBdXRvcnVuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyKSB7XG4gICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlldyA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG5cbiAgICBpZiAodGhpcy5kaXNwb3NlKSB0aGlzLmRpc3Bvc2UoKTtcblxuICAgIGlmICh0aGlzLnNob3VsZERldGFjaCgpKSB7XG4gICAgICB0aGlzLnZpZXcuZGV0YWNoKCk7XG4gICAgfVxuICAgIHRoaXMuYXV0b0RldGVjdCh0aGlzLnZpZXcpO1xuICAgIG1vYnhBbmd1bGFyRGVidWcodGhpcy52aWV3LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmRpc3Bvc2UpO1xuICB9XG5cbiAgc2hvdWxkRGV0YWNoKCkge1xuICAgIHJldHVybiAhdGhpcy5tb2J4QXV0b3J1biB8fCAhdGhpcy5tb2J4QXV0b3J1bi5kb250RGV0YWNoO1xuICB9XG5cbiAgYXV0b0RldGVjdCh2aWV3KSB7XG4gICAgY29uc3QgYXV0b3J1bk5hbWUgPSB2aWV3Ll92aWV3LmNvbXBvbmVudFxuICAgICAgPyBgJHt2aWV3Ll92aWV3LmNvbXBvbmVudC5jb25zdHJ1Y3Rvci5uYW1lfS5kZXRlY3RDaGFuZ2VzKClgIC8vIGFuZ3VsYXIgNCtcbiAgICAgIDogYCR7dmlldy5fdmlldy5wYXJlbnRWaWV3LmNvbnRleHQuY29uc3RydWN0b3IubmFtZX0uZGV0ZWN0Q2hhbmdlcygpYDsgLy8gYW5ndWxhciAyXG5cbiAgICB0aGlzLmRpc3Bvc2UgPSBhdXRvcnVuKFxuICAgICAgYXV0b3J1bk5hbWUsXG4gICAgICAoKSA9PiB2aWV3WydkZXRlY3RDaGFuZ2VzJ10oKVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5kaXNwb3NlKSB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxuc3RhdGljIGRlY29yYXRvcnM6IERlY29yYXRvckludm9jYXRpb25bXSA9IFtcbnsgdHlwZTogRGlyZWN0aXZlLCBhcmdzOiBbeyBzZWxlY3RvcjogJ1ttb2J4QXV0b3J1bl0nIH0sIF0gfSxcbl07XG4vKiogQG5vY29sbGFwc2UgKi9cbnN0YXRpYyBjdG9yUGFyYW1ldGVyczogKCkgPT4gKHt0eXBlOiBhbnksIGRlY29yYXRvcnM/OiBEZWNvcmF0b3JJbnZvY2F0aW9uW119fG51bGwpW10gPSAoKSA9PiBbXG57dHlwZTogVGVtcGxhdGVSZWYsIH0sXG57dHlwZTogVmlld0NvbnRhaW5lclJlZiwgfSxcbnt0eXBlOiBSZW5kZXJlciwgfSxcbl07XG5zdGF0aWMgcHJvcERlY29yYXRvcnM6IHtba2V5OiBzdHJpbmddOiBEZWNvcmF0b3JJbnZvY2F0aW9uW119ID0ge1xuJ21vYnhBdXRvcnVuJzogW3sgdHlwZTogSW5wdXQgfSxdLFxufTtcbn1cblxuaW50ZXJmYWNlIERlY29yYXRvckludm9jYXRpb24ge1xuICB0eXBlOiBGdW5jdGlvbjtcbiAgYXJncz86IGFueVtdO1xufVxuIl19 |
@@ -1,1 +0,1 @@ | ||
[{"__symbolic":"module","version":3,"metadata":{"MobxAutorunDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[mobxAutorun]"}]}],"members":{"mobxAutorun":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer"}]}],"ngOnInit":[{"__symbolic":"method"}],"autoDetect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"MobxAutorunDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[mobxAutorun]"}]}],"members":{"mobxAutorun":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer"}]}],"ngOnInit":[{"__symbolic":"method"}],"autoDetect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}}}] | ||
[{"__symbolic":"module","version":3,"metadata":{"MobxAutorunDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[mobxAutorun]"}]}],"members":{"mobxAutorun":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer"}]}],"ngOnInit":[{"__symbolic":"method"}],"shouldDetach":[{"__symbolic":"method"}],"autoDetect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}}},{"__symbolic":"module","version":1,"metadata":{"MobxAutorunDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive"},"arguments":[{"selector":"[mobxAutorun]"}]}],"members":{"mobxAutorun":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"TemplateRef","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer"}]}],"ngOnInit":[{"__symbolic":"method"}],"shouldDetach":[{"__symbolic":"method"}],"autoDetect":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}}}}] |
@@ -276,10 +276,12 @@ (function (global, factory) { | ||
this.dispose(); | ||
if (this.shouldDetach()) { | ||
this.view.detach(); | ||
} | ||
this.autoDetect(this.view); | ||
mobxAngularDebug(this.view, this.renderer, this.dispose); | ||
}; | ||
MobxAutorunDirective.prototype.shouldDetach = function () { | ||
return !this.mobxAutorun || !this.mobxAutorun.dontDetach; | ||
}; | ||
MobxAutorunDirective.prototype.autoDetect = function (view) { | ||
if (!this.mobxAutorun || !this.mobxAutorun.dontDetach) { | ||
console.log('detach'); | ||
view.detach(); | ||
} | ||
var autorunName = view._view.component | ||
@@ -286,0 +288,0 @@ ? view._view.component.constructor.name + ".detectChanges()" // angular 4+ |
{ | ||
"name": "mobx-angular", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "Angular connector to MobX (2 and above)", | ||
@@ -5,0 +5,0 @@ "jsnext:main": "dist/mobx-angular.js", |
@@ -51,8 +51,24 @@ [![Build Status](https://travis-ci.org/mobxjs/mobx-angular.svg?branch=master)](https://travis-ci.org/mobxjs/mobx-angular) | ||
The directive will observe all the observables that your component uses, and will automatically run the change detection whenever there's a change. | ||
The directive will do the following: | ||
- Run `detach` on the view under *mobxAutorun (disables change detection) | ||
- Observe all the observables / computed values that your component uses | ||
- Automatically run the `detectChanges` method whenever there's a relevant change | ||
Use it together with onPush to gain maximum performance. | ||
Under the hood, this magic happens by running `autorun(() => view.detecChanges)` | ||
## dontDetach | ||
If you rather not detach your view from Change Detection - you can pass a config object to mobxAutorun: | ||
``` | ||
<ng-container *mobxAutorun="{ dontDetach: true }"> | ||
... | ||
</ng-container> | ||
``` | ||
But notice that this misses the purpose of using *mobxAutorun for better performance. | ||
If you need something outside of the store you have 2 options without disabling detach: | ||
- Define local component properties as observables or computed values | ||
- Surround with *mobxAutorun only the parts that actually use observable / computed values from the store | ||
## autorunSync | ||
The same as autorun, except it runs synchronously. | ||
This method is deprecated - do not use it | ||
@@ -59,0 +75,0 @@ ## reaction |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
95807
904
140