2014-02-11 2 views
0

Кто-нибудь знает, как сделать работу arrayIndexOf ниже? Я хочу, чтобы вычисленный наблюдаемый возвращал index + ". " + Name каждого элемента массива. например 1. Item one. Сейчас он возвращается -1. Item oneВычисленная наблюдаемая массивIndexOf

self.Tweet = ko.computed(function() { 
    var items = self.Items().map(function (elem) { 
     return ko.utils.arrayIndexOf(elem.Name()) + ". " + elem.Name(); 
    return items; 
}, self); 

ответ

1

Проблема заключается в использовании функции ko.utils.arrayIndexOf в неправильном направлении. ko.utils.arrayIndexOf(Array , Object)

self.computedObject=ko.computed(function(){ 
    var items=self.colors().map(function(elem){ 
     return ko.utils.arrayIndexOf(self.colors(),elem)+1+"."+elem.color; 
    }); 
    console.log(items); 
    return items; 
},self); 

Here is sample in JSFiddle

+0

Aha - спасибо очень много. :) – user1405195

0

Это, как я получил свой arrayIndexOf работать

var viewModel = function() { 
 
    var self = this; 
 

 
    self.suggestions = ko.observableArray([]); 
 
    self.filterText = ko.observable(''); 
 

 
    self.filterText.subscribe(function(newValue) {}); 
 

 
    self.suggestionsFilter = ko.computed(function() { 
 
    
 
    if (self.filterText() === '') { 
 
     return self.suggestions(); 
 
    } else { 
 
     return ko.utils.arrayFilter(self.suggestions(), function(item) { 
 

 
     var filterResults = item.option.toLowerCase().indexOf(self.filterText().toLowerCase()) == 0; 
 
     return filterResults; 
 

 
     }); 
 
    } 
 
    }); 
 
};
<div class="col-md-6 postcode-search" id="js-postcode-search-suggestions"> 
 
    <input id="name-search" class="form-control" type="search" name="postcode" minlength="1" placeholder="Postcode or Address" data-bind="textInput: filterText" /> 
 
    <div class="col-md-12" data-bind="visible: suggestions().length > 1" style="display: none"> 
 
    <ul class="suggestions" data-bind="foreach: suggestionsFilter"> 
 
     <li class="pad-top-bottom"> 
 
     <a href="#"> 
 
      <span class="option" data-bind="html: option"></span> 
 
     </a> 
 
     </li> 
 
    </ul> 
 
    </div> 
 
</div>

Смежные вопросы