Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <div>
- <a href="#" data-bind="click: $root.addDriver">Add Driver</a>
- <a href="#" data-bind="click: $root.update">Update</a>
- </div>
- <ul data-bind="foreach: Drivers, visible: Drivers().length > 0">
- <ul>
- <div>
- <input data-bind="value: FullName"/>
- <a href="#" data-bind="click: $parent.removeDriver">Delete</a>
- <a href="#" data-bind="click: addCar">Add Car</a>
- </div>
- <ul class="no-cars" data-bind="visible: Cars().length == 0">No cars D:</ul>
- <ul data-bind="foreach: Cars, visible: Cars().length > 0">
- <li>
- <div>
- <a href="#" data-bind="click: $parent.removeCar">Delete</a>
- <label>Car Name:</label> <input data-bind="value: Name"/>
- <label>Car Code:</label> <input data-bind="value: Code"/>
- </div>
- </li>
- </ul>
- </ul>
- </ul>
- @section scripts{
- <script src="../../Scripts/knockout-3.4.0.js"></script>
- <script>
- $(function() {
- function CarModel(data) {
- var self = this;
- self.Code = ko.observable(data.Code);
- self.Name = ko.observable(data.Name);
- }
- function DriverModel(data) {
- var self = this;
- self.addCar = function () {
- self.Cars.push(new CarModel({ Name: 'Tank', Code: '__' }));
- };
- self.removeCar = function (car) {
- self.Cars.remove(car);
- };
- self.Cars = ko.observableArray(data.Cars.map(function(car) { return new CarModel(car); }));
- self.FullName = ko.observable(data.FullName);
- }
- function DriversViewModel() {
- var self = this;
- self.Drivers = ko.observableArray([]);
- self.addDriver = function() {
- self.Drivers.push(new DriverModel({ FullName: 'Mr. Noname', Cars: [] }));
- };
- self.removeDriver = function(driver) {
- self.Drivers.remove(driver);
- };
- self.update = function() {
- $.ajax("/Home/PostDriversModel", {
- data: ko.toJSON({ Drivers: self.Drivers }),
- type: "post", contentType: "application/json",
- success: function () { alert('Success!'); }
- });
- }
- $.getJSON('/Home/GetDriversModel', function (data) {
- var drivers = data.Drivers.map(function (driver) { return new DriverModel(driver); });
- drivers.push(new DriverModel({ Cars: [], FullName: 'Mr Nocars' }));
- self.Drivers(drivers);
- });
- }
- ko.applyBindings(new DriversViewModel());
- });
- </script>
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement