【问题标题】:Creating new upshot js entities创建新的结果 js 实体
【发布时间】:2012-03-26 01:26:57
【问题描述】:

我正在使用 ASP.NET MVC 4 Beta 将网站构建为单页应用程序。

示例应用程序谈到添加新实体,它使用构造函数作为产品实体。

但是,我有许多实体类型,我不会为每个实体类型编写构造函数。这就是我创建新实体的方式(name 是数据源的名称,dataTarget.upshot.upshotData 是我从 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);

【问题讨论】:

    标签: asp.net-mvc-4 upshot


    【解决方案1】:
    var newThing = {};
    var typeName = "MyType:#MyNamespace";
    upshot.map({ SomeProperty: "my value" }, typeName, newThing);
    upshot.addEntityProperties(newThing, typeName);
    

    这将创建具有映射到可观察对象的实体属性的对象,并允许您设置属性(请参阅 SomeProperty:"my value")。

    【讨论】:

    • 嗨,这确实用字段初始化了一个项目 - 但是数组属性没有设置为可观察数组,只是可观察的。
    猜你喜欢
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多