ASP.NET MVC 4 Beta を使用してシングル ページ アプリケーションとしてサイトを構築しています。
サンプル アプリでは、新しいエンティティの追加について説明し、製品エンティティのコンストラクター関数を使用しています。
ただし、多くのエンティティ タイプがあり、それぞれに対してコンストラクタ関数を記述するつもりはありません。これは、新しいエンティティを作成する方法です (name
はデータソースの名前でありdataTarget.upshot.upshotData
、coffeeScript の GetEntities メソッドから返されるエンティティのリストです...
newItem = {}
for field, def of upshot.metadata(upshot.dataSources[name]._entityType).fields
do (field, def) ->
if def.array
newItem[field] = new ko.observableArray()
else
newItem[field] = new ko.observable()
upshot.addEntityProperties newItem, upshot.dataSources[name]._entityType
dataTarget.upshot.upshotData.push newItem
私の質問は、これが最善の方法なのか、それとも何か不足しているのかということです。upshot に createEntity メソッドがないように見えることに驚いています。
JavaScriptで...
newItem = {};
_ref = upshot.metadata(upshot.dataSources[name]._entityType).fields;
_fn = function(field, def) {
if (def.array) {
return newItem[field] = new ko.observableArray();
} else {
return newItem[field] = new ko.observable();
}
};
for (field in _ref) {
def = _ref[field];
_fn(field, def);
}
upshot.addEntityProperties(newItem, upshot.dataSources[name]._entityType);
dataTarget.upshot.upshotData.push(newItem);