Knockout.js 击倒阵型

Knockout.js 击倒阵型,knockout.js,knockout-2.0,Knockout.js,Knockout 2.0,我有两个被淘汰的社交网络和列表2。所有这些列表都可以包含一个社交网络(twitter或facebook)或两者(twitter和facebook) 我想检测我的列表2中不包含的愿望社交网络及其在所选社交网络中的状态 我正在使用if而不是else来检测List_2=selectedSocialNetworks是否在if中执行指令 我很抱歉我的英语不好 谢谢,您可能能做的最好的事情是创建一个ko.computed函数,该函数将返回一个新的数组,其中包含您想要的输出。然后,可以绑定计算出的 你可以自己

我有两个被淘汰的社交网络和列表2。所有这些列表都可以包含一个社交网络(twitter或facebook)或两者(twitter和facebook)

我想检测我的列表2中不包含的愿望社交网络及其在所选社交网络中的状态

我正在使用if而不是else来检测List_2=selectedSocialNetworks是否在if中执行指令

我很抱歉我的英语不好


谢谢,

您可能能做的最好的事情是创建一个ko.computed函数,该函数将返回一个新的数组,其中包含您想要的输出。然后,可以绑定计算出的


你可以自己做循环逻辑并输出一个新数组,或者如果你很懒,你可以使用underline.js(u),如果我没记错的话,它有很多很好的函数可以自动为你处理数组。

你能提供一个输入和输出的例子吗。这很难理解。@Tyrsius看看我的更新谢谢这真是一个JavaScript问题。请看@FacioRatio是的,这是一个很好的链接,非常感谢Facio
<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);
    });
 };