2016-10-07 12 views
0

Node-Redのカスタムノードを開発しています。以下は単純なhtmlですが、私はJqueryを使って要素を選択しようとしています。 Jquery get/post/ajaxは実際に動作していますが、セレクタは動作しません。ノード/赤の単純なカスタムノードでJquery/JavaScriptが動作しない

<script type="text/javascript"> 
RED.nodes.registerType('air-conditioner',{ 
    category: 'function', 
    color: '#a6bbcf', 
    defaults: { 
     name: {value:""}, 
     aclist:{value:""} 
    }, 
    inputs:1, 
    outputs:1, 
    icon: "file.png", 
    label: function() { 
     return this.name||"air-conditioner"; 
    } 
}); 

$(document).ready(function() { 
    alert("Name: "+$("#node-input-name").html()); 
    var root = 'http://172.20.0.107:8080/sitewhere/api/sites/bb105f8d-3150-41f5-b9d1-db04965668d4/assignments?includeDevice=false&includeAsset=true&includeSite=false'; 
    $.ajax({ 
     headers: { 
      'Authorization':'Basic YWRtaW46cGFzc3dvcmQ=', 
      'X-Sitewhere-Tenant':'atif12345' 
     }, 
     url: root, 
     method: 'GET' 
    }).then(function(data) { 
     debugger; 
     $("#node-input-aclist").append('<option>hello</option>'); 
    }); 

}); 

<script type="text/x-red" data-template-name="air-conditioner"> 
 
    <div class="form-row"> 
 
     <label for="node-input-name"><i class="icon-tag"></i> Give this A.C a name</label> 
 
     <input type="text" id="node-input-name" placeholder="Name"> 
 
    </div> 
 
\t <div class="form-row"> 
 
     <label for="node-input-name"><i class="icon-tag"></i> Select A.C</label> 
 
     <select id="node-input-aslist"> 
 
\t \t \t <option>hello 1</option> 
 
\t \t </select> 
 
    </div> 
 
</script>

答えて

1

あなたは $(document).ready()で任意のコードを置くべきではありません - ノードが編集されている場合、ノードの編集フォームにのみ作成されます。

ノードのoneditprepare機能に編集フォームに必要なコードを追加する必要があります。これはノードの編集フォームがビルドされるたびに呼び出されます。

詳細については、http://nodered.org/docs/creating-nodes/properties#custom-edit-behaviourを参照してください。

関連する問題