2014-04-09 4 views
0

Я могу создать динамическую форму с помощью этой ссылкиMVC Knockout.js

var viewModel = { 
    users : ko.observableArray(), 
    addUser : function() { 
     this.users.push({ 
      name : ko.observable(), 
      choicestring : ko.observable() 
     }); 
    } 
}; 

viewModel.addUser(); 

ko.applyBindings(viewModel); 

моя проблема, я не знаю, как удалить элемент управления, я добавил, , как бы я что использование Knockout.js

Спасибо и наилучшими пожеланиями

+0

вы можете дать некоторые подробности? у вас есть открытая форма с двумя полями ввода, вы хотите нажать кнопку «сохранить» (добавить нового пользователя в массив пользователей), а затем хотите, чтобы форма исчезла? –

+0

Привет, infadelic, в этом наборе кодов я могу добавить новые элементы управления, теперь я бы хотел удалить элемент управления из массива, когда нажата кнопка удаления рядом с ним. – Nusij

ответ

1

Наблюдаемые массивы нокаута имеют функцию .remove(item), которая делает это за вас. Таким образом, вы могли бы добавить к вашей модели представления:

removeUser : function (user) { 
    this.users.remove(user); 
} 

А потом подключить его так:

<ul data-bind="foreach: users"> 
    <li> 
     <span data-bind="text: name"></span> 
     (<a href="#" data-bind="click: function() { $parent.removeUser($data); }">Remove</a>) 
    </li> 
</ul> 
<button data-bind="click: addUser">Add user</button> 

Jsfiddle пример: http://jsfiddle.net/8zR5u/

+0

Это отлично работает !, Спасибо, Wedvich – Nusij

0

Обычно это что-то вроде этого (действительно для WebAPI так и для MVC а):

self.remove = function (product) { 
     // First remove from the server, then from the view-model. 
     $.ajax({ type: "DELETE", url: baseUri + '/' + product.Id }) 
      .done(function() { self.products.remove(product); }); 
    } 
Смежные вопросы