扩展Angular breezejs中的模型

时间:2015-05-20 16:40:47

标签: javascript angularjs breeze single-page-application

由于breeze无法在不查看映射实体的情况下提交到数据库,因此需要扩展模型以便自由创建自己的计算属性。参考:http://www.johnpapa.net/new-breeze-angular-service/

我有一个扩展模型,使用John Papa SPA项目模式,

我创建了一个表,需要提交一个计算属性和用户输入,即Date / Time / UsersId我认为实现这个的唯一方法就是创建一个扩展模型检查这个链接 - http://prntscr.com/77cipy

扩展模型auditId是数据库和可绑定对象中的一个字段,

现在的问题是,如果我想使用ngRepeat从数据库调用记录并使用{{m.auditId}}绑定字段auditid来查看我继续从计算属性中获取对象。现在,我创建另一个名为{{m.formattedAuditId}}

的属性
Object.defineProperty(Medication.prototype, 'formattedAuditId', {
            get: function () {
                var fn = this.auditId;
                return fn;
            }
        });

从数据库获取auditId的其他视图页。

                 <table class="table table-striped">
                        <thead>
                        <th>Generic Name</th>
                        </thead>
                        <tr data-ng-repeat="m in vm.medication">
                            <td>{{m.formattedAuditId}}</td>
                            <td><strong>{{m.genericName}}</strong></td>
                        </tr>

                    </table>

它仍然继承自我创建的auditId属性。 请问我能做些什么来绑定数据库中的值而不是我创建的计算属性。

Javascript代码:

function registerMedication(metadataStore) {
        metadataStore.registerEntityTypeCtor('Medication', Medication);

        function Medication() {
            //this.isPartial = false;
        }


        /// This part is the computed property
        Object.defineProperty(Medication.prototype, 'auditId', {
            get: function () {
                var value = moment().format('llll');
                return value;
            },
            set: function (value) {
                return value;
            }
        });

        /// This part is where i want the the value to come from the database
        Object.defineProperty(Medication.prototype, 'formattedAuditId', {
            get: function () {
                var fn = this.auditId;
                return fn;
            }
        });

    }

HTML部分

                  <form class="contact_form" role="form" id="contact_form">

                        <fieldset class="left">

                            <label>Audit Id</label>
                            <div class="block">
                                <input data-ng-model="vm.medication.auditId"
                                       placeholder="Patient ID" class="text_input"
                                       type="text" />
                            </div>

                            <label>Generic Name</label>
                            <div class="block">
                                <input data-ng-model="vm.medication.genericName"
                                       placeholder="Generic Name" class="text_input"
                                       type="text" />
                            </div>
                        </fieldset>
                    </form>

感谢。

0 个答案:

没有答案