2013-09-27 81 views
1

我最近已更新到Breezejs 1.4.2,並且運行自定義初始值設定項似乎存在問題。我的應用使用Breeze正確註冊了ctor和initializer(我相信),但是當我從entityframework支持的webapi檢索記錄時,初始化程序並未執行。從github的簽入源看來,初始化代碼已被註釋掉,並且註釋將從另一段代碼執行初始化程序。任何想法如何我可以解決這個問題?在工作時我可能會降級到1.4.1。我將刪除註釋掉的部分,看它是否有效,但想知道是否有其他人在那裏體驗相同的事情?Breezejs ComplexType不執行自定義初始值設定項功能

C#

public class ForecastItem 
{ 
    public int Id { get; set; } 
    public Result CurrentYear { get; set; } 
    /* extra detail removed */ 
} 


public class Result 
{ 
    public int? Actual { get; set; } 
    public int? Estimate { get; set; } 

} 

的Javascript

function extendResult(metadataStore) { 
     var ctor = function() { }; 

     var initialiser = function (entity) { 
      entity.useEstimate = ko.computed({ 
       read: function() { 
        return entity.actual() === -1 ? true : false; 
       }, 
       deferEvaluation: true 
      }); 
      return entity; 
     }; 
     metadataStore.registerEntityTypeCtor('Result', ctor, initialiser); 
    } 

編輯
我已經註釋掉了從breeze.debug.js的代碼和它現在的工作。

的ComplexType原obejct

proto._createInstanceCore = function (parent, parentProperty) { 
    var aCtor = this.getCtor(); 
    var instance = new aCtor(); 
    new ComplexAspect(instance, parent, parentProperty); 
    // TODO: don't think that this is needed anymore - createInstance call will do this 
    //if (parent) { 
    // this._initializeInstance(instance); 
    //} 
    return instance; 
}; 

回答

1

好吧,這是一個錯誤,並已得到修復。該修復程序將在Breeze 1.4.3中提供,或者現在可以從Breeze Git存儲庫中獲得。 ...並感謝您找到它。 :)

相關問題