Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用余烬数据创建新的嵌套模型特性_Javascript_Ember.js - Fatal编程技术网

Javascript 使用余烬数据创建新的嵌套模型特性

Javascript 使用余烬数据创建新的嵌套模型特性,javascript,ember.js,Javascript,Ember.js,我有一个API,它有一个未定义的属性部分,名为app_data,用于存储随机数据。我试图确定如何从模板上的输入中获取值,并将其设置为app_数据的嵌套属性(称为tags)。我尝试了许多方法,但它们没有将任何数据应用到app_data.tags。任何帮助都将不胜感激 App.Photo = DS.Model.extend({ title: attr(), description: attr(), image: attr(), width: attr(), height: att

我有一个API,它有一个未定义的属性部分,名为app_data,用于存储随机数据。我试图确定如何从模板上的输入中获取值,并将其设置为app_数据的嵌套属性(称为tags)。我尝试了许多方法,但它们没有将任何数据应用到app_data.tags。任何帮助都将不胜感激

App.Photo = DS.Model.extend({
  title: attr(),
  description: attr(),
  image: attr(),
  width: attr(),
  height: attr(),
  important_top: attr(),
  important_left: attr(),
  important_bottom: attr(),
  important_right: attr(),
  created: attr('date'),
  authors: hasMany('author'),
  app_data: {
    tags: []
  },
  imageURL: function() {
    return document.location.origin + '/media/' + this.get('image');
  }.property('image'),
});

App.PhotoseditRoute = Ember.Route.extend({
  model: function() {
    return this.store.find('photo');
  },
});

App.PhotoseditController = Ember.ArrayController.extend({
  actions: {
    save: function() {
      this.set('app_data.tags', 'test tag');
      this.get('model').save();
    }
  }
});

 <script type="text/x-handlebars">
    <h2>Edit Photo Meta Data</h2>
    <button {{action 'save'}} style="float:right;">Save All</button>
    <table>
      <thead>
        <tr>
          <th></th>
          <th>Title</th>
          <th>Description</th>
        </tr>
      </thead>
      <tbody>
        {{#each}}
        <tr>
          <td><img {{bind-attr src="imageURL"}} width="200" /></td>
          <td>{{input title valueBinding="title"}}</td>
          <td>{{input description valueBinding="description"}}</td>
          <td>{{input tags valueBinding="tags"}}</td>
        </tr>
        {{else}}
        <tr>
          <td colspan="6">No photos yet.</td>
        </tr>
        {{/each}}
      </tbody>
    </table>
</script>

app_数据不是余烬对象,这就是为什么对其调用“set”不起作用的原因,您需要执行类似操作。获取“app_数据”。标记。推送“test tag”,谢谢您的帮助。如果我记录此。获取“应用程序数据”或此。获取“应用程序数据”。我收到未定义的标记。如果我像你建议的那样尝试获取和推送,我会收到一个错误:无法读取未定义的属性“tags”。我在你的代码中看到的是,你在“PhostosController”中有保存操作,这是复数版本,因此“app_data”不存在,它属于一张照片,而不是一组照片。因此,“保存”操作应该进入PhotoController,或者在调用“保存”时传递当前照片,并在“保存”操作中接收参数save:functionphoto。然后是photo.get'app_data'…我曾试图简化这个示例,使其易于解析,但这提供了错误的假设。我用模型和实际控制器名称更新了它。当我尝试传递photo参数时,它返回undefined.ok,根据模板,您正在执行“each”,这意味着您正在显示一组记录。正在控制器中调用保存操作,其内容是照片数组。这就是为什么这台电视机不起作用,很清楚,对吧?。由于该模板中的保存操作是“全局”的,因此无法发送“photo”对象,因为它不在“each”循环中。如果它在你的“每个”循环中,它将为每张照片显示。