KnockoutJS.Mapping.FromJS-可观察数组-删除不起作用
KnockoutJS.Mapping.FromJS - Observable array - Remove not working
使用以下代码,我希望无论何时ko.mapping.fromJS(response.results,viewModel),都能将任何新对象添加到viewModel中,并删除任何删除的对象被调用。但它只添加了新对象,旧对象在html:中保留了下来
var viewModel = ko.mapping.fromJS([],
{
key: function(data) {
return ko.utils.unwrapObservable(data.Id);
},
create: function (options) {
return new newConfigModel(options.data);
}
});
var newDispModel = function (data) {
ko.mapping.fromJS(data, {}, this);
this.DisplayTitle = ko.dependentObservable(function() { return GetDisplayTitle(this); }.bind(this));
this.StatusClass = ko.dependentObservable(function () { return GetStatusClass(this); }.bind(this));
this.FeedIndexShadow = "";
this.FeedIndex = ko.dependentObservable(function() { return GetNewFeedIndex(this); }.bind(this));
};
$(document).ready(function () {
function loadConfigurations() {
var url = "/Home/GetItems/";
$.ajax({
url: url,
success: function(response) {
if (response.success)
{
ko.mapping.fromJS(response.results, viewModel);
最后一部分。。。。
<div class="container" id="feeds" data-bind="foreach: viewModel">
<div data-bind="attr: { 'class': StatusClass, 'id': FeedIndex }" style="display: none">
<div class="configRow">
<h2 class="title" data-bind="text: DisplayTitle"/>
</div>
</div>
</div>
我错过了什么?这与键有关吗?我是不是只是以某种方式手动从可观察对象中删除"死"对象?还是我完全误解了ObservableArrays的功能?
这里有一个显示交互的JSFiddle:
注意:映射中的"更新"条目只是为了让我可以登录到控制台。。。除非您需要自定义更新的发生方式,否则不需要它。
http://jsfiddle.net/jearles/wgZ59/49/
点击"加载矩阵",它将显示:
12
23
34
单击"更改",它将重新加载矩阵:
24
45
看看我发布的控制台消息,你会看到:
Creating 1
Updating 1
Creating 2
Updating 2
Creating 3
Updating 3
Updating 2
Creating 4
Updating 4
这似乎证实了行动正在按预期进行。
12 - Is deleted
23 - Is changed to 24
34 - Is deleted
45 - Is added
--
"key"条目通过将特定属性指定为"key"来帮助映射插件确定哪些条目是新的或现有的;否则将比较整个对象是否相等。
http://knockoutjs.com/documentation/plugins-mapping.html
相关文章:
- Jquery行删除对我不起作用,如何设置它
- 删除确认对话框在第一次单击时不起作用
- JS动态添加字段-删除按钮不起作用
- 添加/删除类淡入淡出不起作用
- 删除不起作用的父元素和所有子元素
- JavaScript 确认删除不起作用
- 删除不起作用的li元素
- jquery mouseenter 单击以删除不起作用的类
- 添加,编辑,删除不起作用
- jQuery上的php删除不起作用
- 从数组中删除不起作用
- Laravel yajra/Datatables操作删除不起作用
- KnockoutJS.Mapping.FromJS-可观察数组-删除不起作用
- 正在删除不起作用的事件处理程序:“;这个“;上下文在Javascript中丢失
- Undercore's克隆Mongoose对象和删除不起作用的属性
- JQuery类添加/删除不起作用(要使用的未知委派)
- Firebase用户删除不起作用
- 编辑对新添加的数据删除不起作用
- PhoneGap文件删除不起作用
- 行删除不起作用