【问题标题】:Ember select and query parameters. Getting undefinedEmber 选择和查询参数。变得不确定
【发布时间】:2016-03-11 20:54:09
【问题描述】:

我正在尝试选择一个选项,一旦选择它,获取对象的值并使用该值更改 url。

现在,我在 url 中变得未定义:

http://localhost:4200/product?company=undefined

控制器:

import Ember from 'ember';

 export default Ember.Controller.extend({
   queryParams: ['company'],
   company: null,
    .......

   actions: {
     selectCompany: function(value) {
     this.set('company', value);
      }
    }

 });

模板:

<select {{ action 'selectCompany' company.id on='change' }}>
    {{#each sortedTraitsAsc as |company|}}
       <option value={{company.id}}>  {{company.value}}</option>
   {{/each}}
 </select>

型号

  import DS from 'ember-data';

  export default DS.Model.extend({
  value: DS.attr('string')
  });

【问题讨论】:

    标签: select ember.js undefined


    【解决方案1】:

    在您的模板中,对于选项标签,您还需要提供选定的值以让控制器知道选择是什么。

    这是我根据您正在尝试做的假设重新创建的工作示例。

    在继续之前...确保通过运行以下 Ember CLI 命令安装 Ember Truth Helpers - https://www.npmjs.com/package/ember-truth-helpers:

    ember install ember-truth-helpers
    

    您的路线(在这种情况下提供模型)将如下所示:

    import Ember from 'ember';
    
    export default Ember.Route.extend({
      model: function(){
        return [{'name': 'a', 'valuation': 100},
                {'name': 'b', 'valuation': 200},
                {'name': 'c', 'valuation': 150},
                {'name': 'd', 'valuation': 250}
              ];
      }
    });
    

    您的控制器如下所示:

    import Ember from 'ember';
    
    export default Ember.Controller.extend({
      queryParams: ['company'],
      company: null,
      actions: {
        selectCompany: function(company){
            alert(company);
            this.set('company', company);
          }
    }});
    

    您的模板如下所示:

    <select onchange={{action "selectCompany" value="target.value"}}>
      {{#each model as |companyChoice|}}
        <option value={{companyChoice.name}} selected={{eq company companyChoice.name}}>{{companyChoice.name}}</option>
      {{/each}}
    </select>
    

    希望这会有所帮助。

    【讨论】:

    • 感谢您的回答。虽然我认为我开始更好地理解它是如何工作的,但我仍然不确定。我认为问题可能在于价值和所选部分:(
    猜你喜欢
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    相关资源
    最近更新 更多