Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Select 余烬选择和查询参数。未定义_Select_Ember.js_Undefined - Fatal编程技术网

Select 余烬选择和查询参数。未定义

Select 余烬选择和查询参数。未定义,select,ember.js,undefined,Select,Ember.js,Undefined,我试图选择一个选项,一旦它被选中,获取对象的值并用该值更改url 现在,我在url中没有定义: http://localhost:4200/product?company=undefined 控制器: import Ember from 'ember'; export default Ember.Controller.extend({ queryParams: ['company'], company: null, ....... actions: {

我试图选择一个选项,一旦它被选中,获取对象的值并用该值更改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>

在模板中,对于选项标记,还需要提供所选值,以让控制器知道所选内容

这是一个工作示例,我根据您试图做的假设重新创建了它

在继续之前。。。通过运行以下Ember CLI命令,确保安装了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>
您的控制器如下所示:

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>
您的模板如下所示:

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>

{{{每个模型作为{公司选择}
{{companyChoice.name}
{{/每个}}

希望这会有所帮助。

在模板中,对于选项标记,您还需要提供所选值,以让控制器知道所选内容

这是一个工作示例,我根据您试图做的假设重新创建了它

在继续之前。。。通过运行以下Ember CLI命令,确保安装了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>
您的控制器如下所示:

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>
您的模板如下所示:

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>

{{{每个模型作为{公司选择}
{{companyChoice.name}
{{/每个}}

希望这有帮助。

谢谢你的回答。虽然我认为我开始更好地理解它是如何工作的,但我仍然没有定义。我认为这个问题可能在价值和所选部分:(谢谢你的回答。虽然我认为我开始更好地理解它的工作原理,但我仍然没有定义。我认为这个问题可能在价值和所选部分:(