私は、ASP.NET MVC 4 Betaを使用してシングルページアプリケーションとしてサイトを構築しています。新しいアップショットjsエンティティの作成
サンプルアプリケーションは、新しいエンティティの追加について話し、製品エンティティにコンストラクタ関数を使用します。
しかし、私は多くのエンティティタイプを持っており、それぞれに対してコンストラクタ関数を書くつもりはありません。これは私が新しいエンティティを作成しています方法です(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
これがあれば、私の質問です最良の方法は、それを行うのか、私は何かが足りないのですか?私は結論が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);
こんにちはこれはフィールドを持つ項目を初期化しますが、配列のプロパティは観測可能な配列にのみ設定されています。 –