【问题标题】:Remove the extra property added by JsViews移除 JsViews 添加的额外属性
【发布时间】:2013-10-13 21:48:42
【问题描述】:

好吧,我不认为我使用了正确的术语,但我会尝试解释一下。 我们有一个使用远程处理来自服务器的数据数组。现在我们正在使用 JSViews 将相同的内容添加到带有更新按钮的可编辑表单中。按下此按钮后,需要将数据发送回服务器。

我们成功地绑定了数据,但是当我们记录数据时,我们在数组和每个元素中看到了一个额外的属性“jQuery19105520686232484877”。

{Name: "Cheese Production Facility", RecordTypeId: "012i0000000C1lHAAS", Id: "a01i00000057WQMAA2", Number_of_Sites__c: 0, jQuery19105520686232484877: Object}

有没有一种方法可以从初始数组中删除“jQuery19105520686232484877”属性?

使用的模板

<li data-role="fieldcontain">
    <label for="propertyName">Name:</label>
    <input type="text" name="propertyName" data-link="Name" id="propertyName" value="" data-clear-btn="true"/>
</li>
 <li data-role="fieldcontain">
     <label for="dist">Dist:</label>
     <input type="text" name="dist" id="dist" data-link="Total_Number_of_Acres__c" value="" data-clear-btn="true"/>
</li>

JS 代码

var propInfoObject = {
   Name: "Cheese Production Facility",
   RecordTypeId: "012i0000000C1lHAAS",
   Id: "a01i00000057WQMAA2",
   Number_of_Sites__c: 0
};
$.templates("#editPropertyTemplate").link("#editPropertyContent",propInfoObject);

【问题讨论】:

    标签: jsrender jsviews


    【解决方案1】:

    如果您将事件附加到数组,则该额外属性是添加的 jQuery expando 属性:

    $([myArray]).on("myevent" ...)
    

    JsViews 附加了一个 arrayChange 事件处理程序 - 这就是您看到额外属性的原因。

    然而,jQuery 属性是一个具有特殊属性toJSON: function() {} 的对象。

    该函数不返回任何内容的事实告诉JSON.stringify() 忽略该属性 - 在序列化期间跳过它。

    因此,如果您使用JSON.stringify 序列化数据并将其发送到服务器,则该属性根本不应该出现...

    【讨论】:

    • @Avidev9:您能否确认这是否适合您,如果可以,请“接受”答案?谢谢...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2021-06-19
    • 2015-06-13
    • 1970-01-01
    • 2019-04-18
    • 2020-12-08
    • 2014-02-14
    相关资源
    最近更新 更多