2012-08-08 51 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(_),如果我沒有記錯的話,有很多很好的函數可以自動完成陣列。