首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基因敲除模型绑定技术

基因敲除模型绑定技术
EN

Stack Overflow用户
提问于 2013-06-03 19:00:18
回答 1查看 71关注 0票数 0

我有一个用于插入、更新、删除和显示城市的敲击式视图模型

代码语言:javascript
运行
复制
function City(data) {
    this.CityId = ko.observable(data.CityId);
    this.CityName = ko.observable(data.CityName);
}
function CityViewModel() {
    var self = this;
    self.Citys = ko.observableArray([]);
    self.SelectedCity = ko.observable();
    self.EditingCity = ko.observable(new City({ CityId: '', CityName: '' }));

    self.EditCity = function (city) {
        $.ajax("/Controller/GetSingalCity/" + ko.toJSON(city.CityId), {
            data: ko.toJSON({ CityId: city.CityId }),
            type: "POST", contentType: "application/json",
            success: function (result) {
                if (result.Success) {
                    var cityid = result.Data.CityId;
                    var cityname = result.Data.CityName;
                    self.EditingCity(new City({ CityId: cityid, CityName: cityname }));
                }
                else {
                    alert("Error..");
                }
            }
        }); 
    };
}

使用此代码,每次插入、更新、删除时,我都必须使用use

代码语言:javascript
运行
复制
self.EditingCity(new City({ CityId: cityid, CityName: cityname }));

代码语言:javascript
运行
复制
self.EditingCity(new City({ CityId: '', CityName: '' }));

我不想为每个操作(插入、更新、删除)创建self.EditingCity(new City({ CityId:'',CityName:'‘}))。谁能告诉我怎么做??我是knockout的初学者...

EN

回答 1

Stack Overflow用户

发布于 2013-06-03 19:34:40

您不需要创建新的City对象。相反,只需更新现有的。任何绑定到该EditingCity对象的数据视图都应该自动更新。

因此,与其写:

代码语言:javascript
运行
复制
self.EditingCity(new City({ CityId: cityid, CityName: cityname }));

你应该这样写:

代码语言:javascript
运行
复制
self.EditingCity().CityId(newCityId);
self.EditingCity().CityName(newCityName);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16895186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档