1
我在服务器端创建模型并使用它喜欢ViewModel进行挖空。 我的问题是绑定到选择的值对象{代码,名称}或任何想法如何做时,改变代码值也改名字,我需要选择文本和值将依赖观察到选择值和文本可以独立观察
我的模型C#
public class Model
{
public ClientInfo ClientInfo = new ClientInfo();
public Address Address = new Address();
public SearchInfo SearchInfo = new SearchInfo();
}
public class ClientInfo
{
public string firstname = "Sunnatilla";
public string lastname = "Axakalov";
}
public class Address
{
public List<CodeName> countries = new List<CodeName>();
public CodeName country = new CodeName();
public List<CodeName> cities = new List<CodeName>();
public CodeName city = new CodeName();
}
public class CodeName
{
public string code = "2";
public string name = "Russia";
public CodeName(){}
public CodeName(string code, string name)
{
this.code = code;
this.name = name;
}
}
public class SearchInfo
{
public bool NewClient = true;
}
ASPX页面
<select id="address" data-bind="options: Address.countries,
optionsText: 'name',
optionsValue: 'code',
value: Address.country.code,
event: { change: Address.country.name = ko.utils.arrayFirst(Address.countries, function (country) { if (country.code === Address.country.code) return country.name }) }"></select>
<span data-bind="text: Address.country.code"></span>
<span data-bind="text: Address.country.name"></span>
<script>
$("#out").html('<%=this.model %>');
var jsonModel = JSON.parse('<%=this.model %>');
// jsonModel = {"ClientInfo":{"firstname":"Sunnatilla","lastname":"Axakalov"},"Address":{"countries":[{"code":"1","name":"Kazakhstan"},{"code":"2","name":"Russia"},{"code":"3","name":"China"}],"country":{"code":"2","name":"Russia"},"cities":[],"city":{"code":"2","name":"Russia"}},"SearchInfo":{"NewClient":true}}
function ViewModel() {
ko.mapping.fromJS(jsonModel, {}, this); // here I creatre my view model, all childs recursively observable
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
</script>
或更改Address.country.code时也发生了变化Address.country.name
做出一些事件0我需要同时更改配对键/值
请帮助任何想法。 Address.country`为`select`:
试'值覆盖的observabe
Address.country.name
这是行不通的。 – Dandy@sunna试试这个http://jsfiddle.net/supercool/LkqTU/27321/ –
@Dandy我试过了没有工作 – sunna