私がやろうとしているのは、私の ajax 呼び出しから最初の結果を取得して.portfolio--active
div に入れてから、この最初の項目を ajax 結果から削除してから、.portfolio--active
.
ループは完璧に機能しています。私が抱えている問題は、.portfolio--active
. ループに入ったり、何らかの方法で関数名を参照したりせずにデータを出力する方法がわかりません。例: <ul data-bind="foreach: items">
reefers to this: hutber.portfolio.ko.self.items = ko.observableArray([]);
without it being in al
マークアップ
<section>
<h2>portfolio</h2>
<div class="portfolio--active">
<!--<img alt="" src="/img/clients/vw.jpg">-->
<img alt="" data-bind="attr: {src: '/img/clients/' + headline.id+'.jpg'}">
<h3><a href="#">Volkswagen.co.uk</a></h3>
<date>Febuary, 2012 - <a href="#">Zone Ltd.</a></date>
<p>Lorem text</p>
<tags><i title="jQuery" class="icon-rss upsideLeft"></i><i title="jQuery" class="icon-html5 upsideLeft"></i></tags>
</div>
<div class="portfolio--options">
<ul data-bind="foreach: items">
<li data-bind="attr: {'data-id': $data.id}">
<img alt="" data-bind="attr: {src: '/img/clients/' + $data.id+'.jpg'}">
<h4 data-bind="text: title"></h4>
</li>
</ul>
</div>
</section>
JS
hutber.portfolio.ko = {
init: function(){
ko.applyBindings(new hutber.portfolio.ko.portfolioViewModel());
},
portfolioViewModel: function(){
hutber.portfolio.ko.self = this;
hutber.portfolio.ko.self.items = ko.observableArray([]);
hutber.portfolio.ko.self.headline = ko.observableArray([]);
$.getJSON('/portfolio/json').done(function(info){
//build headline item
hutber.portfolio.ko.self.headline(info.slice(0,1));
//remove first item in array only leave none headline items
info = info.slice(1,info.length);
//update items with updated info
hutber.portfolio.ko.self.items(info)
});
}
};