javascript - 在Ember中,如何通过检查一个键/值从数组中获取对象的所有属性

标签 javascript arrays ember.js

我有一系列产品对象。但我只想获取数组中的一个对象来对其执行某些操作,方法是检查该对象的属性值是否为 true

我不确定我的做法是否正确。我怎样才能用 Ember 的方式做到这一点。

请有人帮助我。谢谢!

型号:

// model
import DS from 'ember-data';

export default DS.Model.extend({
  name: DS.attr('string'),
  description: DS.attr('string'),
  sku: DS.attr('number'),
  price: DS.attr('number'),
  createdAt: DS.attr('date')
});

Controller :

// controller
import Ember from 'ember';

export default Ember.Controller.extend({
  store: Ember.inject.service(),

  products: Ember.computed('store', function () {
    return this.get('store').findAll('product').then(product => product);
  }),

  actions: {
    selectProduct(value) {
      // I'm not sure if this is the correct way of grab an object
      this.get('products').filter((product) => {

        if (product.get('name') === value) {
          let newProduct = Ember.Object.create({
            name: product.get('name'),
            description: product.get('description'),
            price: product.get('price')
          });

          return newProduct;
        } else {
          console.log('Please select something!!');
        }
      });
    }
  }
});

模板:

// template
<div class="product-list">
  <select id="prod-list" onchange={{action "selectProduct" value="target.value"}}>
    {{#each products as |product|}}
      <option value="{{product.name}}">{{product.name}}</option>
    {{/each}}
  </select>
</div>

最佳答案

首先,最好在路由中获取数据。

您可以使用findBy方法来查找项目。

请查看this twiddle .

我将适配器更改为假数据。

关于javascript - 在Ember中,如何通过检查一个键/值从数组中获取对象的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42113386/

相关文章:

jquery - 在 ember 应用程序中使用 jquery

jquery - 在 Ember 中保留滚动位置

javascript - 在 Ember.js 中将字符串组合到绑定(bind)变量

javascript - 如何重写类箭头函数方法

java - 如何使用 JUnit 测试对象数组

javascript - 如何使用网络 worker 加载图像?

java - 给定列表 1、4、5、9、2 编写一个程序来查找两个值的可能组合,其中 sum = 6

javascript - 通过 id 数组过滤原始对象数组

Javascript正则表达式仅检查字符串开头的数字和减号

javascript - 使用 jQuery 从 JSON 文件中提取数据并将其分成组