【发布时间】:2014-11-19 12:30:16
【问题描述】:
我目前正在使用 Knockout 来呈现我的 HTML 页面,但是当我试图呈现我的 HTML 时,当数据存储在一个简单的 JSON 文件中时,我被卡住了。
Json 文件在这里:
{
"name": "Office Web Controls 2014"
}
这是加载我的 Json 字符串的函数:
<script type="text/javascript">
function AppViewModel() {
this.data = { };
$.getJSON("Resources/Data/Ribbon.json", function(retrievedData) {
this.data = ko.mapping.fromJSON(retrievedData);
console.log(this.data);
});
}
// Activates knockout.js
ko.applyBindings(new AppViewModel());
</script>
我想将它绑定到以下 HTML:
<div data-bind="text: data.name">
</div>
我尝试了非常不同的方法,但都没有奏效,所以如果有人知道如何实现这一点。
【问题讨论】:
-
现在 SO 支持工作 JS sn-ps。使用工作示例会更容易解决类似您的问题的问题..
-
但是我将无法通过 ajax 请求加载文件...
-
我猜问题出在
this的范围内。我会在AppViewModel中定义var _this = this;并在回调中使用_this.data -
您应该简化它并将 json 硬编码为字符串:D
-
这并不能解决问题@njzk2。简化它不起作用,因为问题似乎出在我的 getJSon 中,console.log 确实向我显示了正确的值,但是如果我将日志移出 getJSON 函数,则数据为空。
标签: html json knockout.js knockout-mapping-plugin