2013-08-19 19 views
1

我正在使用淘汰賽在頁面上顯示項目。我有一組例如:組1,組2,...每個組都在它自己的div中。當我點擊其中一個組時,它將打開並顯示組中的項目。我的一些小組沒有任何項目要顯示,而不是顯示任何我想要更改的顯示內容:「組中沒有項目」在淘汰賽中檢查返回的孩子js

我在使用javascript在視圖中執行此操作時遇到了問題,想我能做到這一點在我的淘汰賽/ jQuery腳本

查看:

<div class="accordion-group elements-by-item"> 
     <div class="accordion-heading"> 
      <a class="ui_title accordion-toggle text_x-large item_accordion_toggle" data-toggle="collapse" data-parent="#ByTimeIndex" 
       data-bind="text: Title() != null ? Title() : Identity(), attr: { 'href': '#itemContent_' + Id(), 'data-item-id': Id() }"> 
      </a> 
     </div> 
     <div class="accordion-body collapse state-loading" data-bind="attr: { 'id': 'itemContent_' + Id(), 'data-item-id': Id() }"> 
      @Html.Partial("_itemElements") 
     </div> 
    </div> 


    **_itemElements Page:** 

    <div class="accordion-inner no_border" data-bind="foreach: Children"> 
         <div class="element"> 
         ........ 
         </div> 
    <div> 

淘汰賽/ jQuery的JS

$idx.ItemsRetrieved = new Array(); 

    $idx.GetItemContent = function (element) { 
     var _itemId = element.attr('data-item-id'); 
     var _elementData = $idx.itemData; 

     this.GetElementContent({ 
      groupId: _itemId, 
      groupData: _elementData.items, 
      elementData: _elementData, 
      apiUrl: _courseIndexOptions.GetitemUrlPrefix + _itemId, 
      accordionBodySelector: '.accordion-body[data-item-id="' + _itemId + '"]', 
      accordionBtnSelector: 'a[data-item-id="' + _itemId + '"]', 
      viewModel: $idx.TimeViewModel 
     }); 
    } 

    $idx.GetElementContent = function (options) { 
     if (linq.From($idx.ItemsRetrieved).Any(function (x) { return x == options.groupId })) { 
      $(options.accordionBodySelector).removeClass(constants.StateClasses.Loading);   
      return;                     
     } 

     return Ajax.Get({ 
      Url: options.apiUrl, 
      OnSuccess: function (data) { 
       var _items = linq.From(options.groupData);           
       var _itemToUpdate = _items.Where(function (x) { return x.Id == options.groupId; }); 
       if (_itemToUpdate.Any()) { 
        _itemToUpdate.First().Children = data.Items;         
       } 

       ko.mapping.fromJS(options.elementData, options.viewModel);       
       sections.ElementArray.AddRange(data.Items);          

       $(options.accordionBodySelector).removeClass(constants.StateClasses.Loading);  
       $idx.ItemsRetrieved.push(options.groupId);          
       $(options.accordionBtnSelector).click();           
      } 
     }); 

如何檢查子項ItemsRetrieved = 0並設置消息「No Items」在視圖頁面中顯示?

回答

1

你可以這樣做:

<div class="accordion-inner no_border" > 
    <div data-bind="foreach: Children"> 
     <div class="element"> 
     </div> 
    </div> 
    <span data-bind="if : Children().length == 0">No items in group</span> 
<div> 

我希望它能幫助。