【发布时间】:2012-09-08 00:08:51
【问题描述】:
这是一个新手问题,更不用说我对 knockout.js 很陌生。我要做的就是从服务器获取单个种植者(姓名、公司、地址)的详细信息并将其显示在网页上。我使用的是 $(document).bind('pageinit', function (),因为我使用的是 jQuery mobile。
现在我的代码是:
<h3><span data-bind="text: Name"></span></h3>
<span data-bind="text: Company"></span><br />
<span data-bind="text: Address"></span>
<script type="text/javascript">
$(document).bind('pageinit', function () {
function MyGrowerModel() {
//this.Name = "My Name";
//this.Company = "My Company";
//this.Address = "My Address";
//Load initial state from server, convert it to Task instances, then opulate self.tasks
$.getJSON("Grower/GetGrower", function (allData) {
this.Name = allData.Name;
this.Company = allData.Company;
this.Address = allData.Address;
alert(allData.Name); //works!
});
}
ko.applyBindings(new MyGrowerModel());
});
</script>
我收到“无法解析绑定。消息:ReferenceError:名称未定义;绑定值:名称
这是有道理的,因为 Name、Company 和 Address 都在 getJSON 函数的范围内。那么,我的问题是,在哪里声明这些变量以及如何更新这些 ViewModel 数据?
我不想使用映射插件。
感谢任何帮助。
【问题讨论】:
-
这真是令人费解。 Royce Feng 或 Michael Berkompas 给出的解决方案都不适合我。即使我可以看到数据来自服务器(警报消息正确显示名称),我在绑定 ViewModel 属性的地方也得到了空白值。还有什么问题?
-
查看我的答案的最新编辑。看看那个代码 sn-p 是否适合你。
标签: jquery-mobile knockout.js asp.net-mvc-4