javascript – 如何将计算的observable添加到knockoutjs映射
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何将计算的observable添加到knockoutjs映射,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1870字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何将计算的observable添加到knockoutjs映射](/upload/InfoBanner/zyjiaocheng/776/95315f7192ab45918e7bc6f47cb829e5.jpg)
我正在使用映射插件基于从服务器发送的对象来创建我的客户端视图模型.对象是基本地址信息,即:地址1,地址2,城市,州,邮政等…
绑定视图模型后,如果用户更改地址,我希望更新Google地图画布.我创建了一个计算的observable,它检查输入的值并调用map更新函数.我没有使用映射插件之前有这个工作,即模型是在本地定义的,但是一旦我引入了映射,我无法将计算的observable附加到视图模型.
我尝试按照映射插件documentation中的说明进行操作,但计算出的observable不会触发更新.我有一个自定义映射调用mapModel,它包含示例中的计算observable,但没有更新.
有任何想法吗?
$.getJSON("@Url.RouteUrl("
ContactUs_default ", new { action = "
GetPageModel ", Model.BusinessID})", function(result) {
//create map property
result.Data.Map = null;
var mapping = {
'Map': {
create: function(options) {
return new mapModel(options.data);
}
}
};
var viewModel = ko.mapping.fromJS(result.Data, mapping);
ko.applyBindings(viewModel);
});
var mapModel = function(data) {
ko.mapping.fromJS(data, {}, this);
this.Map = ko.computed(function() {
var address = "";
var enteredElements = 0;
if (this.Address1 != helpText) {
address += " " + this.Address1;
enteredElements++;
}
if (this.Address2 != helpText) {
address += " " + this.Address2;
}
if (this.City != helpText) {
address += " " + this.City;
enteredElements++;
}
if (this.State != helpText) {
address += " " + this.County;
enteredElements++;
}
if (this.PostalCode != helpText) {
address += " " + this.Postal;
}
alert("hi");
//only upate map if enough data has been entered to give accruate location
if (enteredElements >= 3) {
MYMAP.placeMarkers(address);
}
}, this);
};?
解决方法:
当您通过映射插件发送数据时,您的所有属性都将成为可观察的.
这意味着您需要像以下一样访问它们:
if (this.Address1() != helpText) {
address += " " + this.Address1();
enteredElements++;
}
当您在计算的observables中作为observables访问它们时,它将创建一个依赖项.因此,目前您的计算的observable最初会被评估,但它永远不会再次更新,因为它不会访问任何observable的值.
内容总结
以上是互联网集市为您收集整理的javascript – 如何将计算的observable添加到knockoutjs映射全部内容,希望文章能够帮你解决javascript – 如何将计算的observable添加到knockoutjs映射所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。