你如何从TVML textField获得价值?

时间:2015-09-18 15:22:17

标签: apple-tv

我试图弄清楚如何使用TVJS从TVML中的textField中获取值,但我还没有找到任何文档,我不想等待文档更新。实际上没有任何绑定到输入的模式,因为我确信除了登录服务之外,这是一个很少的用例。我想我可以解析Xml,但这似乎超级hacky。

2 个答案:

答案 0 :(得分:4)

我最终自己搞清楚了。我不得不使用select事件对象的回调,然后将text元素传递给函数来处理事件。

function template() {
    var template = "<document><formTemplate><textField id="email">Your email</textField><footer><button><text>Submit</text></button></footer></formTemplate></document>";
    var parser = new DOMParser();
    var doc = parser.parseFromString(template , "application/xml");
    var email = doc.getElementById("email");
    doc.addEventListener("select", function() { submit(email); });
}

function submit(textField) {
    var keyboard textField.getFeature('Keyboard');
    var email = keyboard.text;
}

有了节点后,我使用了Apple TVJS函数getFeature('Keyboard')来获取此对象的文本值。

答案 1 :(得分:0)

由于某种原因,该解决方案对我不起作用,但是我找到了另一个解决方案:

 var sender = event.target;
 var formTemplate = sender.parentNode.parentNode;
 var children = formTemplate.childNodes;
 var textField = children.item(1); // replace "1" with the index of "textField" element in your template                                                                                        
 var inputValue = textField.getFeature("Keyboard").text;