Öğe Ayrıntılarını Görüntüle

Tamamlanan Projeyi İndir

Bu bölümde, her kitabın ayrıntılarını görüntüleme özelliğini ekleyebilirsiniz. app.jsiçinde, görünüm modeline aşağıdaki kodu ekleyin:

self.detail = ko.observable();

self.getBookDetail = function (item) {
    ajaxHelper(booksUri + item.Id, 'GET').done(function (data) {
        self.detail(data);
    });
}

Views/Home/Index.cshtml'de Details bağlantısına bir veri bağlama öğesi ekleyin:

<ul class="list-unstyled" data-bind="foreach: books">
  <li>
    <strong><span data-bind="text: AuthorName"></span></strong>: <span data-bind="text: Title"></span>
    <!-- New code -->
    <small><a href="#" data-bind="click: $parent.getBookDetail">Details</a></small>
  </li>
</ul>

Bu, bir< öğenin tıklama işleyicisini >görünüm modelinde getBookDetail işleve bağlar.

Aynı dosyada aşağıdaki işaretlemeyi değiştirin:

<div class="col-md-4">
    <!-- TODO: Book details -->
</div>

bununla:

<!-- ko if:detail() -->

<div class="col-md-4">
<div class="panel panel-default">
  <div class="panel-heading">
    <h2 class="panel-title">Detail</h2>
  </div>
  <table class="table">
    <tr><td>Author</td><td data-bind="text: detail().AuthorName"></td></tr>
    <tr><td>Title</td><td data-bind="text: detail().Title"></td></tr>
    <tr><td>Year</td><td data-bind="text: detail().Year"></td></tr>
    <tr><td>Genre</td><td data-bind="text: detail().Genre"></td></tr>
    <tr><td>Price</td><td data-bind="text: detail().Price"></td></tr>
  </table>
</div>
</div>

<!-- /ko -->

Bu işaretleme, görünüm modelinde gözlemlenebilir özelliğinin detail özelliklerine bağlı bir tablo oluşturur.

"<-- ko -->" söz dizimi, DOM öğesinin dışında bir Knockout bağlaması eklemenize olanak tanır. Bu durumda, if bağlaması, bu işaretleme bölümünün yalnızca details null olmadığında görüntülenmesine neden olur.

<!-- ko if:detail() -->

Şimdi uygulamayı çalıştırır ve "Ayrıntı" bağlantılarından birine tıklarsanız, uygulama kitap ayrıntılarını görüntüler.

Kitap listesinin yer aldığı Kitaplar bölmesini ve seçili kitabın ayrıntılarının listesini gösteren Ayrıntı bölmesini gösteren uygulama penceresinin ekran görüntüsü.