не удается вызвать viewmodel внутри foreach
Привет Друзья,
я разрабатываю проект с MVC и knockout js.
здесь у меня есть вид "Customerlist".и вид модели "CustomerViewModel".
я не знаю, чтобы написать функцию и вызвать функцию в поле зрения для редактирования и удаления
Смотреть CustomerList
<div id="binding" data-bind="foreach: customersListViewModel.customers"> <div class="row"> <div class="col-md-1"><span data-bind="text: CustomerId"></span></div> <div class="col-md-4"><span data-bind="text: Name"></span></div> <div class="col-md-2">View Addresses</div> <div class="col-md-1"><a href="#">Edit</a></div> <div class="col-md-1"><a href="#">Delete</a></div> </div> </div> <div class="control-group"> <label class="control-label" for="singlebutton"> </label> <div class="controls"> <button id="singlebutton" name="singlebutton" class="btn btn-primary" data-bind="click: function () { customersListViewModel.changeVisibility(true); }">Add Customer</button> </div> </div>
Customer.js
var customerViewModel; ko.validation.rules.pattern.message = 'Invalid.'; ko.validation.configure({ registerExtenders: true, messagesOnModified: true, insertMessages: true, parseInputAttributes: true, messageTemplate: null }); function CustomersList() { var self = this; // observable arrays are update binding elements upon array changes self.customers = ko.observableArray([]); self.Visibility = ko.observable(false); self.getCustomers = function () { self.customers.removeAll(); // retrieve students list from server side and push each object to model's customers list $.getJSON('/api/Customer', function (data) { $.each(data, function (key, value) { self.customers.push(new Customer(value.CustomerId, value.FirstName, value.LastName, value.EmailAddress, value.PhoneNumber)); }); }); }; self.changeVisibility = function (visible) { self.Visibility(visible); }; self.addCustomer = function () { var observableFormData = this.addCustomerViewModel; var customersListViewModel = this.customersListViewModel; var dataObject = ko.toJSON(this.addCustomerViewModel); if (observableFormData.errors().length == 0) { $.ajax({ url: '/api/Customer', type: 'post', data: dataObject, contentType: 'application/json', success: function (data) { self.getCustomers(); observableFormData.CustomerId(null); observableFormData.FirstName(''); observableFormData.LastName(''); observableFormData.EmailAddress(''); observableFormData.PhoneNumber(''); customersListViewModel.changeVisibility(false); }, error: function (request, status, error) { if (request.responseText != "") { var response = jQuery.parseJSON(request.responseText); var messages = JSON.stringify(response.Message).split(","); if (messages.length > 0) { $.each(messages, function (index, value) { observableFormData.businessRuleErrors.push(value); }); customersListViewModel.changeVisibility(true); } } } }); } else { observableFormData.errors.showAllMessages(); } }; } customerViewModel = { customersListViewModel: new CustomersList(), addCustomerViewModel: new Customer(), }; $(document).ready(function () { ko.applyBindings(customerViewModel); customerViewModel.customersListViewModel.getCustomers(); }); function Customer(customerId, firstName, lastName, emailAddress, phoneNumber) { var self = this; self.CustomerId = ko.observable(customerId); self.FirstName = ko.observable(firstName).extend({ required: { params: true, message: "First name is required" } }); self.LastName = ko.observable(lastName).extend({ required: { params: true, message: "Last name is required" } }); self.EmailAddress = ko.observable(emailAddress).extend({ required: { params: true, message: "Email is required" }, email: true }); self.PhoneNumber = ko.observable(phoneNumber).extend({ required: { params: true, message: "Phone Number is required" } }); self.errors = ko.validation.group(self); self.businessRuleErrors = ko.observableArray([]); self.Name = ko.computed(function () { return self.FirstName() + " " + self.LastName(); }, self); }
Не мог бы кто-нибудь помочь мне написать функцию для редактирования и удаления данных?
большое спасибо,
С уважением
Лалита
DiponRoy
где вы хотите разместить свою функцию редактирования и удаления? внутри CustomerViewModel или CustomersList ?