我有两个Knockout选择的社交网络和List_2所有这个列表可以包含一个社交网络(twitter或facebook)或两者(twitter和facebook)
<script id="socNetchoiceTmpl" type="text/html">
<ul data-bind="foreach: socialNetworksList, visible: socialNetworksList().length > 0">
<li>
<input type="checkbox" data-bind="value: $data, checked:
$parent.selectedSocialNetworks" /><span data-bind="text: $data"/>
</li>
</ul>
function SocialNetChoicesViewModel() {
var self = this;
self.socialNetworksList = ko.observableArray([]);
self.selectedSocialNetworks = ko.observableArray([]);
self.List_2 = ko.observableArray([]);
self.save = function () {
if(....){
$.ajax("/Home/SocialNetworksChoice", {
data: ko.toJSON({ selectedSocialNetworks: self.selectedSocialNetworks }),
type: "post", contentType: "application/json",
success: function (result) {
if (result.Success) {
//alert(result.Message);
}
else {
alert(result.Message);
}
}
});
}
else{
$.ajax("/Home/Authentification", {
data: ko.toJSON({ socialNetworks: self.List_2 }),
type: "post", contentType: "application/json",
success: function (result) {
if (result.Success) {
//alert(result.Message);
}
else {
alert(result.Message);
}
}
});
}
};
// Load initial state from server, convert it to Task instances,
// then populate self.tasks
$.getJSON("/Home/SocialNetworksChoice", function (allData) {
var mappedItems = $.map(allData, function (item) { return item });
self.socialNetworksList(mappedItems);
});
$.getJSON("/Home/Authentification", function (allData) {
var mappedItems = $.map(allData, function (item) { return item });
self.List_2(mappedItems);
});
};
我想检测我的List_2及其在selectedSocialNetworks中的社交网络不包含的愿望
我使用if而不是检测List_2 = selectedSocialNetworks是否执行指令...
我很抱歉我的英语不好,
感谢,
答案 0 :(得分:0)
你可能做的最好的事情是创建一个ko.computed函数,它将返回一个带有你想要的输出的新数组。然后,您可以绑定计算的。
你可以自己做循环逻辑并输出一个新数组,或者如果你很懒,你可以使用underscore.js(_),如果我没记错,有很多很好的函数可以自动为你做数组