我有ViewModel及其屬性之一是一個observableArray(接收器)。我想在添加新記錄之前檢查收集的電子郵件地址是否已存在,以確保不會發生重複的條目。請幫忙。我嘗試了從這裏的方法How to conditionally push an item in an observable array?,但它不工作。它無法檢測到列表中是否已添加電子郵件。我希望如果AddReceiver函數被調用,我將驗證newReceiverData電子郵件地址。這是我的代碼。Knockout.js發現電子郵件地址,如果已經存在observablearray
視圖模型
var ReceiversViewModel = function() {
var self = this;
var errorModal = {};
self.firstname = ko.observable();
self.lastname = ko.observable();
self.receivers = ko.observableArray();
self.newReceiver = {
receiverfirstname: ko.observable(''),
receiverlastname: ko.observable(''),
receiveremailaddress: ko.observable('')
};
self.AddReceiver = function() {
var newReceiverData = ko.toJS(self.newReceiver);
if (ReceiverValidate() == true) {
//check if newReceiverData.receiveremailaddress value already exist
self.receivers.push({
EmailAddress: newReceiverData.receiveremailaddress,
FirstName: newReceiverData.receiverfirstname,
LastName: newReceiverData.receiverlastname
});
}
};
};
我收到錯誤「JavaScript運行時錯誤:無法獲取未定義或空引用的屬性'receiveremailaddress' 「我認爲,因爲接收器是未定義的,但self.receivers()中有項目 –
您的self.receivers()中的所有接收器observableArray是否具有此屬性? 「any」函數遍歷它們並查看這個屬性(我寫的當前比較函數期望這個屬性在那裏) –