2012-08-08 49 views
0

我有两个阵列敲除selectedSocialNetworks和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中,并且它在所选社交网络中

我使用if比else检测List_2 = selectedSocialNetworks是否执行指令如果...

对不起我的英文不好,

感谢,

+0

你能提供一个输入和输出的例子。这很难理解。 – Tyrsius 2012-08-08 20:00:14

+0

@Tyrsius看我的更新谢谢 – ramo 2012-08-08 20:26:06

+0

这真是一个JavaScript问题。见http://stackoverflow.com/questions/237104/array-containsobj-in-javascript – 2012-08-10 15:19:26

回答

0

你也许可以做到的最好的事情是创建一个ko.computed函数会返回一个新的数组与输出你的愿望。然后您可以绑定计算。

你可以自己做循环逻辑并输出一个新的数组,或者如果你懒惰的话,你可以使用underscore.js(_),如果我没有记错的话,有很多很好的函数可以自动完成阵列。