這可能是錯誤的方法,但基本上我想創建一個節點,其中一個下拉列表取決於配置節點值。節點Red在Admin UI中獲取配置節點值
配置-的test.html
<script type="text/javascript">
RED.nodes.registerType('test-config', {
category: 'config',
defaults: {
token: { value: '' }
}
});
</script>
<script type="text/x-red" data-template-name="test-config">
<div class="form-row">
<label for="node-config-input-token"><i class="icon-tag"></i> Token</label>
<input type="text" id="node-config-input-token" placeholder="Token">
</div>
</script>
配置,test.js
module.exports = function (RED) {
function TestConfig(config) {
RED.nodes.createNode(this, config);
this.token = config.token;
}
RED.nodes.registerType('test-config', TestConfig);
}
所以後來在新的節點,我想這樣做:
test-node.html
<script type="text/javascript">
RED.nodes.registerType('test-node', {
defaults: {
token: { value: '', type: 'test-config' },
node: { value: '' }
},
oneditprepare: function() {
var token = ??????;
var nodes = $('#node-input-node');
reloadNodeSelect();
function reloadNodeSelect() {
$.ajax({
url: '--URL--' + token
success: function (res) {
nodes.html('');
for (var i = 0; i < res.obj.length; i++) {
nodes.append($('<option></option>').attr('value', res.obj[i]).text(res.obj[i]));
}
}
});
}
}
});
</script>
<script type="text/x-red" data-template-name="temp-node">
<div class="form-row">
<label for="node-input-node"><i class="icon-tag"></i> Node</label>
<select type="text" id="node-input-node"></select>
</div>
</script>
這種情況是,有一個API使用令牌和Web請求獲得節點列表,每個節點都有其自己的單個令牌,API需要針對該特定節點的請求。我還想列出每個節點還有幾個附加子項,並允許用戶選擇給定的測試節點。每個節點的配置不同,使用這些附加選項創建配置節點似乎沒有意義。
顯然令牌可能只是提供作爲測試節點上的文本字段,但這個想法是要限制重複的數量,使配置的目標用戶更精簡。
使用console.log(this);在oneditprepare()函數內部有一個token屬性的值,但它是一個ID,它似乎指向配置節點。但我找不到一種方法來使用它來獲得該節點的價值。
令牌: 「5a1ab56c.5e478c」
我已經試過RED.nodes.getNode(),但這種方法只可在運行時API中:http://nodered.org/docs/api/runtime/api#getNode
謝謝!