OJET开发求助:如何将JSON数据转为字符串绑定到oj-bind-text?
问题解决:OJET中通过
<oj-bind-text>显示JSON数据字段 问题原因
你使用ko.observable()存储完整的JSON对象,但在绑定表达式里直接写cardData.agent_ID无法正确取值——因为cardData是Knockout的observable函数,而非普通对象,直接访问agent_ID会读取函数本身的属性,而非内部存储的JSON对象属性。
解决方法
方法1:在绑定表达式中手动unwrap observable
修改HTML代码,通过cardData()获取observable内部的对象,再访问属性:
<oj-bind-text value="[[cardData().agent_ID]]"></oj-bind-text>
方法2:改用ko.observableObject()存储数据
如果希望保持绑定表达式简洁,可以将cardData定义为observable对象,这样就能直接通过属性访问符取值:
修改JS代码:
this.cardData = ko.observableObject(); this.fetchAgentDetails = async function () { try { const response = await fetch('http://localhost:8080/cardData'); const data = await response.json(); console.log(data) this.cardData(data); } catch (error) { // Handle errors } }; this.fetchAgentDetails();
HTML代码保持原写法即可:
<oj-bind-text value="[[cardData.agent_ID]]"></oj-bind-text>
可选优化
如果字段可能为null或undefined,可以添加空值兜底,避免显示异常:
<oj-bind-text value="[[cardData()?.agent_ID || '']]"></oj-bind-text>
内容的提问来源于stack exchange,提问作者kona B
相关产品推荐
相关产品推荐

