Tôi có một kiểu xem phải được gắn vào một sự kiện nhấp chuột của một thẻ <li>
. Dưới đây là viewmodel và đánh dấuRàng buộc loại bỏ không xác định cho nhấp chuột
var viewModel =
{
Folders: ['Inbox', 'Archive', 'Sent', 'Spam'],
SelectedFolder: ko.observable('Inbox'),
chosenFolderId: ko.observable(),
navigate: function() {
self.chosenFolderId(folder);
}
};
ko.applyBindings(viewModel);
Và đánh dấu là
<ul class="nav nav-list bs-docs-sidenav affix" data-bind="foreach:Folders">
@*<li data-bind="css:{active: $data == chosenFolderId() }">*@
<li>
<a href="#" data-bind="click:navigate">
<!-- ko text: $data -->
<!-- /ko -->
<i class="icon-chevron-right"></i>
</a>
</li>
</ul>
Vấn đề là ở dòng này
<a href="#" data-bind="click:navigate">
và
<li data-bind="css:{active: $data == chosenFolderId() }">
Cả Dòng trên là không được gắn vàoChức năngvà chosenFolderId
có thể quan sát tương ứng. Nó nói rằng Navigate
là không xác định. Không thể phân tích cú pháp này . Same goes for
selectedFolderId`.
Bất kỳ ý tưởng nào về việc nó xảy ra?
Vâng tôi đã làm điều đó với cách tiếp cận này. Nhưng tôi muốn nó làm với mô hình mô-đun thay vì chỉ đẩy các ràng buộc thông qua các chức năng. Vì vậy, với cách tiếp cận của bạn hoàn toàn hợp lệ. Tôi không thể làm tương tự với cách tiếp cận của tôi? – Joy
@Joy Tôi không thực sự theo dõi bạn ... bạn có thể tổ chức chức năng tạo mô hình chế độ xem của bạn với mẫu mô-đun. Bạn có thể cập nhật jsfiddle của tôi với mã bạn tưởng tượng không? – nemesv
@Joy Có một vài cách để làm cho nó hoạt động với các đối tượng literals như thế này: http://jsfiddle.net/8Y5cv/1/. Nhưng cuối cùng bạn sẽ gặp phải một số trường hợp mà nó sẽ không đủ cho nhu cầu của bạn. – nemesv