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;
};