ko.utils.arrayFirst を使用してビュー モデルから一致するアイテムを取得し、そのプロパティの 1 つを更新しようとしていますが、「関数ではありません」というエラーが発生します。どんな助けでも大歓迎です。match.NewMessage("") を呼び出すとエラーが発生します。ビューモデルからの監視可能な配列内のアイテムのインスタンスと一致するべきではありませんか? SendMessage はビュー モデルで定義された関数であるため、「自己」参照であり、InstantMessages は ko.observableArray として定義されています。
self.SendMessage = function (im) {
var match = ko.utils.arrayFirst(self.InstantMessages(), function (item) {
return im.InstantMessageId === item.InstantMessageId;
});
if (match) {
var newMessage = new Chat.Message();
newMessage.FromUser = self.User;
newMessage.Text = match.NewMessage;
newMessage.InstantMessageId = match.InstantMessageId;
match.NewMessage("");
self.ChatHub.server.sendMessage(newMessage).fail(function (e) { alert(e); });
}
};