2015-12-20 8 views
0

У меня есть служба AngularJS, написанная на JavaScript, и я хотел бы преобразовать ее в TypeScript. Версия Javascript немедленно возвращает функцию. Зачем это делать и как реализовать это в TypeScript?Служба AngularJS в машинописном тексте

JavaScript

Geisha.service("loginModal", ["$uibModal", "$rootScope", function ($uibModal: angular.ui.bootstrap.IModalService, $rootScope: ICustomRootScopeService) { 
function assignCurrentUser(user: User) { 
    $rootScope.currentUser = user; 
    return user; 
} 

return function() { 
    var instance = $uibModal.open({ 
     templateUrl: "/Angular/Security/Views/loginTemplate.html", 
     controller: "loginModalCtrl" 
    }); 

    return instance.result.then(assignCurrentUser); 
}}]); 

машинопись

В машинописном я только зашел так далеко, как создание конструктор и один из методов, но не уверен, как осуществить немедленное возвращение функции

module G.Services { 
export class LoginModal { 

    $rootScope: ICustomRootScopeService; 
    $uibModal: angular.ui.bootstrap.IModalService; 

    static $inject = ["$rootScope", "$uibModal"]; 
    constructor($rootScope: ICustomRootScopeService, $uibModal: angular.ui.bootstrap.IModalService) { 
     this.$rootScope = $rootScope; 
     this.$uibModal = $uibModal; 
    } 

    assignCurrentUser(user: User): User { 
     this.$rootScope.currentUser = user; 
     return user; 
    } 


} 
Geisha.service("loginModal", LoginModal);} 

ответ

1

Как реализовать функцию немедленного возврата

В вашем случае у вас есть service that is just a function. Если вы используете класс, это будет что-то , которое имеет функции. Лучше, если вы просто используете функцию, как у вас.

Примечание

Если вы готовы сделать рефакторинг иметь loginModal.assignCurrentUser(...stuff...) в другом месте вместо loginModal(...stuff...)

Смежные вопросы