我有一個包含非常基本的「郵件」信息的視圖模型:如何在敲擊時點擊布爾值?
var emailsViewModel = function() {
var self = this;
self.emails = ko.observableArray([
{from: 'From', subject: 'Subject', date: '9/6/2015', flagged: false, read: false},
{from: 'From', subject: 'Subject', date: '9/6/2015', flagged: false, read: false}
]);
}
ko.applyBindings(emailsViewModel);
這些電子郵件使用for each
數據綁定顯示:
<div id="email-browser" data-bind="foreach: emails">
<div class="email" data-bind="css: {unread: read == false}">
<div class="select"><input type="checkbox"></div>
<div class="flag"><i class="fa fa-flag" data-bind="css: {flagged: flagged == true}></i></div>
<div class="from" data-bind="text: from"></div>
<div class="subject" data-bind="text: subject"></div>
<div class="date" data-bind="text: date"></div>
</div>
</div>
所以基本上,有幾個「電子郵件」說所有人都擁有來自財產,主題財產,日期財產,標記財產和閱讀財產。
我想弄清楚如何切換和更新點擊標記和讀取屬性的布爾值true/false值。因此,如果用戶點擊帶有一個標誌類的div
,它會將對象的布爾值從false切換到true或true切換到false。有關我如何實現這一目標的任何想法?
非常感謝。那樣做了。我只需要把我的實際屬性變成可觀察的!我是Knockout的新手,非常感謝您的幫助! –
只是爲了說明的目的,所以我確切知道你的代碼在做什麼,你能幫我一個忙,並解釋這行代碼實際上在做什麼? 'email.flagged(!email.flagged());' –
此行採用標記的可觀察值的當前值,將其反轉,然後將其分配給標記的可觀察值。所以,如果它是真的,它就會變成錯誤的,如果這個值是錯誤的,它就會成爲現實。 – Dandy