1
我通過教程從官方網站去:Knockoutjs CSS,函數調用
Knockout single page application lesson
本所認爲:
<!-- Folders -->
<ul class="folders" data-bind="foreach: folders">
<li data-bind="text: $data,
css: { selected: $data == $root.chosenFolderId() },
click: $root.goToFolder"></li>
</ul>
和腳本:
function WebmailViewModel() {
// Data
var self = this;
self.folders = ['Inbox', 'Archive', 'Sent', 'Spam'];
self.chosenFolderId = ko.observable();
// Behaviours
self.goToFolder = function(folder) { self.chosenFolderId(folder); };
};
ko.applyBindings(new WebmailViewModel());
我不明白2件事:
'click:'事件正在調用javascript函數goToFolder,但是,沒有參數,它如何知道點擊哪個文件夾來設置chosenFolderId?如果我錯了,行css:{selected:$ data == $ root.chosenFolderId()}表示當前選中的對象$ data是否等於chosenFolderId(),因此css與選擇的名稱是否啓用?
乾杯所有
嗨阿爾喬姆,非常感謝,我更好地理解爲什麼調用函數時不帶參數,關於語法,爲什麼CSS:被稱爲與chosenFolderId結束的()(),然後點擊? :沒有? – dtjmsy
因爲在綁定中有一個表達式(即「visible:Something()> 10」)時應該使用括號,所以如果您只是函數或可觀察的元素,則不需要放置括號。這篇文章可以幫助你理解基本的東西:http://www.knockmeout.net/2011/06/10-things-to-know-about-knockoutjs-on.html –
非常感謝你的幫助阿爾喬姆 – dtjmsy