如何访问打字稿中的功能?

时间:2017-07-14 09:01:54

标签: angular function typescript ionic2

我正在使用打字稿开发混合应用程序,我想知道如何访问打字稿中的函数。

这是我的源代码:

export class SuccessPage {
 public removeRoom(){
    console.log("removeroom");
 }
}
function getRoom(){
  var searchList = '';
  ....
  searchList += '   <li id=\'' + result.Item[0].room_num + '\'>';
  searchList += result.Item[i].dest_x + ', ' + result.Item[0].dest_y + 
               '<br><button class="removeRoom" onclick="removeRoom()"> </button></li>';
  ....
 }

我打算访问removeRoom函数。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

它看起来不像一个正确的架构(稍后会详细介绍),但要回答你的问题,你可以做以下两件事之一:

  1. 保持removeRoom方法不变,并在其他地方使用它,您必须创建SuccessPage类的实例,即:

    const page = new SuccessPage();
    page.removeRoom();
    
  2. 或制作removeRoom方法static并在不创建实例的情况下使用它:

    static removeRoom() {...} 
    
    /* ... *./
    
    SuccessPage.removeRoom()
    

    (请注意,如果方法不适用于实例字段(即内部没有staticthis.something,则this.doSomething()只是一个选项。

  3. 好的,回到&#34;架构&#34;事情。如果removeRoom方法没有对类实例的任何引用,并且你确实需要从其他地方访问它,也许最好单独定义它 - 只是一个自治辅助函数(你可以使用它)直接来自组件和js代码)或作为Angular服务的一部分(在这种情况下,您再次必须创建服务的实例以在Angular组件之外的js代码中使用它)

答案 1 :(得分:0)

如果将类导入另一个文件,则可以通过执行

来使用该功能
import SuccessPage from './SuccessPage';

const page = new SuccessPage()
page.removeRoom()