2016-12-07 9 views
1

私はいくつかのrgb-ledのコントローラをnode-redで作成しようとしています。アイデアは、ユーザーが色を選択する場所からクリック可能なカラーパレットを作成することです。私はこれがnode-red-dashboardのui-modulesテンプレートノードでできると思います。しかし、私は選択された色を送信するテンプレートノードを取得することはできません。私が見つけた唯一の例はこれです:私の状況では動作しませんし、(少なくとも私にとっては)送信機能の使用方法について多くを教えてくれないNode-red-dashboardテンプレートノードsend-functionの使用方法は?

<md-button ng-click="send({payload: 'Hello World'})"> 
    Click me to send a hello world 
</md-button> 

。だから、多少のようにそれを行うことが可能であろう:

<md-button ng-click="send(getPixel(event))"> 
     Click 
</md-button> 

<script> 
    getPixel = function(event){ 

     //Get the pixel color based on event.x and event.y 

     return "{payload: 'calculated-response'}"; 
    } 
</script> 

または私はNGクリックよりもどこかで送信機能を使用することができますか? Btwは色の選択が支配下にあり、私はそれを助ける必要はありません。助けようとしている皆さん、ありがとうございました。

答えて

0

getPixelの方法がコントローラの$scopeに公開されていないため、できません。

send関数と$eventを呼び出す代わりに、send関数呼び出しgetPixelメソッドから呼び出します。

<md-button ng-click="send($event)"> 
    Click 
</md-button> 

コード

$scope.send = function(event){ 
    getPixel(event); 
    //do other Awesome code 
} 

他の方法は、単に以下の実行して$の範囲で利用可能getPixelと機能を作ることになります。

$scope.getPixel = getPixel; 

上記の行をコントローラ内に追加すると、あなたが書いたものは何でもできます。

+0

回答ありがとうございますが、残念ながらこれはうまくいきません。参照エラーが発生します: '$ scope is not defined '。 'send()'メソッドはすでにnode-redまたはnode-red-dashboardで作成されており、私の質問にある唯一の例に基づいて、メッセージペイロードをパラメータとして受け取ります。 –

+0

コントローラ機能で '$ scope'を注入する –