0

Breezejs (1.4.2) に問題があります。q (0.9.7) エンティティの計算プロパティを追加したいです。

var doctorInitializer = function (doctor) {
    doctor.FullName = ko.computed(function () {           
        return doctor.FirstName() + " " + doctor.MiddleName() + " " + doctor.LastName() + " " + doctor.SurName();           
    });
};

var doctorName = '/breeze/polyclinic', 
doctorManager = new breeze.EntityManager(doctorName);
var store = doctorManager.metadataStore;
store.registerEntityTypeCtor("Doctor", null, doctorInitializer);

コンストラクターに計算されたノックアウトを追加してみます

var doctor = function () {
  self.FullName = ko.computed( {
    read: function() {
       return self.FirstName + " " + self.MiddleName + " " + self.LastName + " " + self.SurName;
    },
    deferEvaluation: true
  });
};
store.registerEntityTypeCtor("Doctor", doctorInitializer);

どちらの場合も、括弧を削除した場合にのみ機能しますが、MiddleName と SurName は必要なく、空の文字列の代わりに null を取得しました

これは私が持っているエラーですhttp://screencast.com/t/bP9Xnmf9Jm

アップデート

コンソールログにエラーを追加して、あなたの例に従ってみます。同じエラーが関数ではありませんhttp://screencast.com/t/bQTyV8XGD0Pk

 doctor.FullName = ko.computed(function () {
        var fullName = "";
        fullName += doctor.FirstName();
        if (doctor.FirstName()) {
            fullName += ' ' + doctor.FirstName();
        }
        fullName += ' ' + doctor.LastName();
        if (doctor.SurName()) {
             fullName += ' ' + doctor.SurName();
        }
        return fullName;
    });

var query = breeze.EntityQuery.from("Doctors").orderBy("Id")
doctorManager.executeQuery(query)
.then(function (data) {                    
    self.doctors.removeAll();
    self.doctors(data.results);
 })
 .fail(function(error) {
     console.log(error);
 });

誰かが私を助けてくれることを願っています

4

1 に答える 1