由于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>
感谢。