Javascript 淘汰赛JS1.3测试版_destroy:false在ui上的结果与_destroy:true相同

Javascript 淘汰赛JS1.3测试版_destroy:false在ui上的结果与_destroy:true相同,javascript,asp.net-mvc-3,knockout.js,destroy,knockout-mapping-plugin,Javascript,Asp.net Mvc 3,Knockout.js,Destroy,Knockout Mapping Plugin,使用asp.NETMVC,我将向下传递一个viewmodel,并获得knockout以映射一个viewmodel并绑定到它 这一切对我来说都很好,我正在尝试做的是跟踪删除 我想我可以通过添加_destroy属性,但将其设置为false来实现这一点 我希望ui会忽略这一点,直到destroy将其设置为true 但事实似乎并非如此,仅仅是这些财产的存在就导致被视为已被摧毁 这是一个错误还是我处理错了 非常感谢,, 科汉 以上元素都不会显示。即使是“_destroy”:null也具有相同的效果 问题的

使用asp.NETMVC,我将向下传递一个viewmodel,并获得knockout以映射一个viewmodel并绑定到它

这一切对我来说都很好,我正在尝试做的是跟踪删除

我想我可以通过添加_destroy属性,但将其设置为false来实现这一点

我希望ui会忽略这一点,直到destroy将其设置为true

但事实似乎并非如此,仅仅是这些财产的存在就导致被视为已被摧毁

这是一个错误还是我处理错了

非常感谢,, 科汉

以上元素都不会显示。即使是“_destroy”:null也具有相同的效果

问题的工作示例。。。
更新:似乎是映射扩展的问题。

发生的事情是,您正在通过映射插件发送
\u destroy
,它将作为一个可观察的对象出现。Knockout并不期望它是一个可观察的(函数),因此当它执行类似于
if(\u destroy)
的检查时,结果将是真的,因为
\u destroy
是一个函数,它没有展开以查看其值

您可以做如下操作:防止
\u destroy
成为可观察对象

因此,请使用映射选项:

var mappingOptions = {
    create: function(options) {
        return ko.mapping.fromJS(options.data, { copy: ["_destroy"] }); 
    }
};

所发生的事情是,您正在通过映射插件发送
\u destroy
,它将作为一个可观察的对象出现。Knockout并不期望它是一个可观察的(函数),因此当它执行类似于
if(\u destroy)
的检查时,结果将是真的,因为
\u destroy
是一个函数,它没有展开以查看其值

您可以做如下操作:防止
\u destroy
成为可观察对象

因此,请使用映射选项:

var mappingOptions = {
    create: function(options) {
        return ko.mapping.fromJS(options.data, { copy: ["_destroy"] }); 
    }
};

有样品吗?可能还有别的原因。这里有一个工作示例:谢谢,我正在尝试在那里复制它。这就是我所拥有的,不幸的是,它在JSFIDLE上似乎根本不起作用。您对映射插件的引用不好(需要github上的原始版本):太好了,谢谢。用工作示例更新了问题。你有样本吗?可能还有别的原因。这里有一个工作示例:谢谢,我正在尝试在那里复制它。这就是我所拥有的,不幸的是,它在JSFIDLE上似乎根本不起作用。您对映射插件的引用不好(需要github上的原始版本):太好了,谢谢。更新了带有工作示例的问题。这确实有效,谢谢,但会使viewmodel看起来非常混乱。我很好奇,为什么不工作?我还注意到,我们制作的这些例子在ie-9中都不起作用。你知道这是JSFIDLE问题吗?IE9阻止了没有正确mime类型的脚本。Github不会将它们作为脚本提供,因为它们实际上不应该托管用于实时使用的脚本。我同意你发布的提琴应该是基于文档的。我发现它正在比较“\u destroy”和“[0]”之类的东西。当它通过数组时。这可能是映射插件的一个错误或缺点。谢谢,这确实有效,但会使viewmodel看起来非常混乱。我很好奇,为什么不工作?我还注意到,我们制作的这些例子在ie-9中都不起作用。你知道这是JSFIDLE问题吗?IE9阻止了没有正确mime类型的脚本。Github不会将它们作为脚本提供,因为它们实际上不应该托管用于实时使用的脚本。我同意你发布的提琴应该是基于文档的。我发现它正在比较“\u destroy”和“[0]”之类的东西。当它通过数组时。映射插件可能存在错误或缺陷。