Tôi đang sử dụng jpg loại trực tiếp để hiển thị danh sách các trường (ví dụ: tên, họ, v.v.). Các trường được liệt kê bên trong một mẫu loại bỏ bằng cách sử dụng một mảng quan sát được. Mẫu chứa các trường sau: tên (đầu vào), bản dịch (chọn) và chức năng thêm/xóa. (Xem bên dưới)Loại bỏ JS của MVC bên trong hộp thoại JQuery
var viewModel = {
Fields: ko.observableArray([new Field(2, "First Name", 1), new Field(3, "Last Name", 2)]),
AvailableTranslations: ko.observableArray([new Translation(1, "Prefixes"), new Translation(2, "Suffixes")]),
remove: function(item) {
ko.utils.arrayRemoveItem(this.Fields, item)
},
add: function() {
this.Fields.push(new Field(0, "", ""));
}
};
var Translation = function(id, name) {
this.ID = id;
this.Name = name;
};
var Field = function(id, name, translationID){
this.ID = ko.observable(id);
this.Name = ko.observable(name);
this.TranslationID = ko.observable(translationID);
};
Bên cạnh danh sách chọn bản dịch trong mẫu, tôi muốn có tùy chọn thêm bản dịch mới không tồn tại. Khi nút được nhấp vào Tôi muốn mở một hộp thoại giao diện người dùng jquery có chứa một phần xem sử dụng loại trực tiếp. Chế độ xem một phần sẽ chứa tên bản dịch cũng như giá trị cũ và giá trị mới (cả hai trường văn bản). Giá trị cũ và mới là một mảng quan sát được.
var viewModelPartialDialog = {
TranslationName: ko.observable(),
Values: ko.observableArray([]),
};
var Value = function(id, oldVal, newVal) {
this.ID = id;
this.OldVal = oldVal;
this.NewVal = newVal;
};
Khi người dùng gửi biểu mẫu xem một phần, tôi muốn thực hiện lưu cuộc gọi cũng như cập nhật mảng có thể quan sát của AvailableTranslations.
Có ai có thể giúp tôi hoặc chỉ cho tôi đúng hướng để thực hiện việc này không?
Cảm ơn ví dụ. Nó là hữu ích nhưng không chính xác những gì tôi đang cố gắng để làm. Trong ví dụ của bạn, tôi không thể thêm một ObservableArray vào Sản phẩm và sau đó có một mẫu lồng nhau bên trong mẫu chỉnh sửa của hộp thoại.
Quay lại ví dụ ban đầu của tôi, tôi muốn thêm các trường mới trong chế độ xemModelA, tương tự như cách bạn có danh sách sản phẩm. Tuy nhiên, thay vì chỉnh sửa trường trong hộp thoại, tôi muốn mở hộp thoại để thêm Bản dịch mới. Bản dịch mới mở trong hộp thoại sẽ là một mô hình xem riêng biệt (viewModelB). Khi tên bản dịch và giá trị được thêm vào, hộp thoại sẽ đăng một cách không đồng bộ và sau đó cập nhật mảng quan sát có sẵn của khung nhìn có sẵn (viewModelA) của mô hình khung nhìn ban đầu.
Bạn có thể cung cấp ví dụ về chức năng này không?
đẹp ví dụ. Tôi cũng cần phải biết khi nào sự kiện đóng cháy xảy ra vì vậy tôi đã thêm một ràng buộc cho điều này .. http://jsfiddle.net/WpnTU/25/ – Anders
Anders, cảnh báo onclose kích hoạt hai lần bằng Chrome. Nó có xảy ra với bạn không? –