Hello I need your help in making converting this excellent javascript code into typed ui-router.
Question Section
Question 1: So does a javascript callback equate the return of the instance of the typescript class? Feel free to help me out if I am not going in the right direction.
Example of what I mean above: In the code below I think that provider means a callback. JavaScript
var provider = this;
this.$get = function() {
return provider;
}
I think but I am not sure that translates to typescript as:
private _Service:any;
public $get() { return this._Service; }
constructor(private $stateProvider:any ) {
this._Service = this;
}
Code Section
Here what I am trying to convert
.provider('modalState', function($stateProvider) {
var provider = this;
this.$get = function() {
return provider;
}
this.state = function(stateName, options) {
var modalInstance;
$stateProvider.state(stateName, {
url: options.url,
onEnter: function($modal, $state) {
modalInstance = $modal.open(options);
modalInstance.result['finally'](function() {
modalInstance = null;
if ($state.$current.name === stateName) {
$state.go('^');
}
});
},
onExit: function() {
if (modalInstance) {
modalInstance.close();
}
}
});
};
})
which is excellent code found: Using ui-router with Bootstrap-ui modal
Here my attempt to convert it to typescript
class ModalService {
private _Service:any;
public $get() { return this._Service; }
constructor(private $stateProvider:any ) {
this._Service = this;
}
state(stateName:string, options:any ) : void {
this.state = (stateName, options)=> {
var modalInstance;
this.$stateProvider.state(stateName, {
url: options.url,
onEnter: ($modal, $state) => {
modalInstance = $modal.open(options);
modalInstance.result['finally']( ()=> {
modalInstance = null;
if ($state.$current.name === stateName) {
$state.go('^');
}
});
},
onExit: () => {
if (modalInstance) {
modalInstance.close();
}
}
});
};
}
}