Jquery / JavaScript无法在节点红色简单自定义节点中工作

时间:2016-10-07 07:20:37

标签: javascript node-red

我正在为Node-Red开发一个自定义节点。下面是简单的html,我试图使用Jquery选择一个元素。 Jquery get / post / ajax实际上正在工作,但选择器不是。

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

});

&#13;
&#13;
<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>
	<div class="form-row">
        <label for="node-input-name"><i class="icon-tag"></i> Select A.C</label>
        <select id="node-input-aslist">
			<option>hello 1</option>
		</select>
    </div>
</script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您不应该在 $( document ).ready()中放置任何代码 - 只有在编辑节点时才会创建节点的编辑表单。

您应该将编辑表单所需的任何代码添加到节点的oneditprepare函数中。每次为节点构建编辑表单时都会调用它。

有关详细信息,请参阅http://nodered.org/docs/creating-nodes/properties#custom-edit-behaviour