1

我是微风中的新手,我正在尝试使用以下代码删除一个实体:

export var deleteRow= function (selectedRow) {
   isDeleting(true);
   selectedRow.entityAspect.setDeleted();
   (<any>datacontext).saveChanges()
       .done(
        function () {
           router.replaceLocation(listUrl);
         })
       .fail(saveFailed);
    //}
  isDeleting(false);
};

数据上下文是:

 export var saveChanges = function () {
    return manager.saveChanges()
        .then(saveSucceeded)
        .fail(saveFailed);

    function saveSucceeded(saveResult) {
            log('Saved data successfully', saveResult, true);
    }

    function saveFailed(error) {
        var msg = 'Save failed: ' + getErrorMessages(error);
        logError(msg, error);
        error.message = msg;
        throw error;
    }
};

错误发生在一行:

selectedRow.entityAspect.setDeleted();

日志(chrome 控制台)讲述了以下内容:

“未捕获的错误:无法解析绑定。消息:TypeError:无法调用 null 的方法‘字典’;绑定值:文本:row.assessmentType().dictionary().name”

在我的标记中使用它的别名来标识我的集合中的行的对象行:

 <!-- ko foreach: { data: assessmentRegistrations(), as: 'row' }-->
                    <tr data-bind="css: { koAssumptionGridViewRow: true }, style: { color: 'inherit' }">                                   
                        <td><small data-bind="text: row.toShortDate"></small></td>
                        <td><small data-bind="text: row.fishgroup().fishgroupName"></small></td>
                        <td><small data-bind="text: row.assessmentType().dictionary().name"></small></td>                                   
                        <td><small data-bind="text: row.site().name"></small></td>
                        <td><small data-bind="text: row.site().name"></small></td>                                      
                        <td></td>                                  
                        <td><small data-bind="text: row.assessmentFollowUpStatus().dictionary().name"></small></td>                           
                    </tr>

任何帮助都非常感谢:)

4

1 回答 1

2

不确定问题是什么,但我会先尝试隔离它。即不涉及任何淘汰赛绑定尝试调用setDeleted()。我敢打赌,这会成功。如果是这样,那么您知道该问题是淘汰赛绑定问题。

另一种可能性:问题是否可能在 saveChanges() 调用之后实际发生?考虑到您的症状,这样做有意义的原因是“已删除”实体在 saveChanges() 调用后变得“分离”并且绑定到它很可能会失败。

于 2013-07-11T23:28:18.130 回答