2013-07-11 96 views
1

我在微風中是新的,我將嘗試使用此代碼刪除實體:微風錯誤嘗試刪除實體

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

和DataContext的是:在線路happend

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(); 

日誌(鉻控制檯)告訴講講:

「未捕獲的錯誤:無法解析綁定。 消息:TypeError:無法調用null的方法'dictionary'; 綁定值:文本:。row.assessmentType()字典()名「

的對象行這是在我的標記用我的集合中標識行別名:

<!-- 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> 

任何幫助apreciated :)

回答

1

不知道是什麼問題,但我會嘗試先隔離。即沒有涉及到任何的淘汰賽結合嘗試調用setDeleted()。我敢打賭,這一定會成功。如果是這樣,那麼你就知道該問題是一個淘汰賽結合問題。

另一種可能性:是否可能在saveChanges()調用後實際發生問題?之所以這樣做是有道理的,因爲你的症狀是在saveChanges()調用並且綁定它後很可能會失敗,'刪除'實體變成'分離'。

+0

我刪除了我的HTML視圖中的所有綁定代碼,是的,你是對的,它的工作,所以這是一個淘汰賽問題。這裏的奇怪是爲什麼我現在正在運行該問題的線程(setDeleted())... – Rolando

+0

另一種可能性是,當您調用setDeleted()Breeze時,將您的實體與其它實體的所有關係斷開連接。所以我的猜測是你的導航屬性在調用setDeleted()和ko無法綁定到這個之後開始返回null,特別是當你試圖訪問一個屬性的屬性,即row.site()。name where row.site === null; –

+0

好的,我所做的只是一個不同的問題。從我的datacontext我得到了對象的Id我想要刪除,然後我打電話給我的API控制器刪除對象和他們的孩子(每個父母約140行)。無論如何,我會將你的答案標記爲正確的。謝謝 ! – Rolando