2017-07-14 8 views
-2

私はtypescriptを使ってハイブリッドアプリを開発していますが、typescriptの関数にアクセスする方法は不思議です。私はremoveRoom機能にアクセスしようとするtypecriptの関数にアクセスするには?

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>'; 
    .... 
} 

は、これは私のソースコードです。どうすればこれを達成できますか?

答えて

0

あなたは別のファイルにクラスをインポートする場合、あなたは、それが正しいアーキテクチャ(この後にそれ以上)のようには見えませんが、あなたの質問に答えるために

import SuccessPage from './SuccessPage'; 

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

を行うことによって機能を利用することができる可能性2つの物事のいずれかを実行します。つまり、そのまま

  1. removeRoom方法を保ち、あなたがSuccessPageクラスのインスタンスを作成する必要があると思います他の場所でそれを使用する:

    const page = new SuccessPage(); 
    page.removeRoom(); 
    
  2. 又はremoveRoom方法staticを作成し、インスタンスを作成せずにそれを使用する:

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

    (すなわち、(メソッドがインスタンス・フィールドに動作しない場合staticが唯一の選択肢であることに注意内部にthis.somethingまたはthis.doSomething()がありません。

[OK]を「アーキテクチャ」に戻します。 removeRoomメソッドにクラスインスタンスへの参照がなく、他の場所からアクセスする必要がある場合は、それを別個に定義するほうがよいでしょう。これはオートノミックヘルパー関数(これは、コンポーネントとjsコード)またはAngularサービスの一部として(この場合、Angularコンポーネント外のjsコードで使用するサービスのインスタンスを作成する必要があります)

+0

私は試しましたが動作しません:(しかし、thx! –

関連する問題