【问题标题】:Modifying breeze entity修改微风实体
【发布时间】:2014-04-08 04:06:27
【问题描述】:
 <div class="span4" data-bind="with: singleQaItem">
      <div class="span6">
        Qa Item Grouping <br /><input type="text" list="editQaItemGroupings" data-bind="value: QaItemGrouping().QaItemGroupingDesc" autocomplete="off">
       <datalist id="editQaItemGroupings">
        </datalist>
     </div>
 </div>

在上面的 html 中,singleQaItem 是一个轻而易举的实体,它还包含一个使用 .expand 获取的外键属性。该属性是数据列表控件绑定到的 QaItemGrouping().QaItemGroupingDesc。

在 UI 中,当我修改此属性的值并保存时,我发现微风实际上是在修改 QaItemGrouping 实体,因为它为该实体修改了 entityState。但我没有修改 QaItemGrouping 实体。我正在修改属于 singleQaItem 实体的 QaItemGrouping().QaItemGroupingDesc 属性。

【问题讨论】:

    标签: knockout.js breeze


    【解决方案1】:

    查看 QaItemGrouping 实体上的 originalValues 属性。这将向您显示您可能“无意”更改的任何属性。

    var originalValues = theModifiedQaItemGroup.entityAspect.originalValue;
    

    【讨论】:

    • 这就是我的问题。 UI 都没有绑定到 QaItemGrouping 实体的任何元素,我也没有在代码中更改该实体值。我只是在我的代码中绑定 QaItemGrouping().QaItemGroupingDesc,其中 QaItemGrouping 是 singleQaItem 实体中的导航属性。为什么更改导航属性实际上会更改原始实体?
    • 哪个“属性”正在改变?这是 originalValues 会告诉你的。
    • 我绑定到 datalist 控件的 QaItemGroupingDesc 属性
    • 原来的值和现在的值一样吗?
    • 不,它正在改变。基本上我正在更改实体的导航属性,但微风也在更改实际实体中的值。
    猜你喜欢
    • 2014-11-02
    • 2013-04-05
    • 1970-01-01
    • 2013-03-22
    • 2016-03-25
    • 2013-05-17
    • 2015-04-20
    • 1970-01-01
    • 2018-05-13
    相关资源
    最近更新 更多