1

例如这里 http://jsfiddle.net/tobikko/ysFC6/10/

我如何真正找出 OptionValuePath 和 OptionLabelPath 的内容?如您所见,下拉列表中有一个列表,但值不可见。

在这种情况下,我知道它应该是 OptionLabelPath: "content.firstName" 但如果我不知道怎么办?

我创建了 focusOut 函数来检查视图的内容,它看起来像这样 内容

在我遇到问题的真实应用程序中,内容中的每个对象都不包含ember1340135889380_meta 对象或 __proto部分。那是问题吗?我如何解决它?

<script type="text/x-handlebars">
  {{view App.SelectView }}

  <p>Selected: {{App.selectedPersonController.person.fullName}}
    (ID: {{App.selectedPersonController.person.id}})</p>
</script>
window.App = Ember.Application.create();

App.SelectView = Ember.Select.extend({
    contentBinding: "App.peopleController",
    selectionBinding: "App.selectedPersonController.person",
    optionLabelPath: "firstName",
    optionValuePath: "id",
    prompt: "select",

  focusOut: function () {
        var test = this.get('content');
   }  
})


App.Person = Ember.Object.extend({
    id: null,
    firstName: null,
    lastName: null,

    fullName: function() {
        return this.get('firstName') + " " + this.get('lastName');
    }.property('firstName', 'lastName').cacheable()
});

App.selectedPersonController = Ember.Object.create({
    person: null
});


App.peopleController = Ember.ArrayController.create({
    content: [
        {
        id: 1,
        firstName: 'Yehuda',
        lastName: 'Katz'},
    {
        id: 2,
        firstName: 'Tom',
        lastName: 'Dale'},
    {
        id: 3,
        firstName: 'Peter',
        lastName: 'Wagenet'},
    {
        id: 4,
        firstName: 'Erik',
        lastName: 'Bryn'}
    ]
});
4

1 回答 1

-1

文档中所述,您始终必须content.将用作idand的属性的路径放在前面label,请参阅http://jsfiddle.net/pangratz666/B2rJN/

您提到ember1340135889380_meta的对象上的类似属性表明它是Ember.Object. 但是Ember.Select's中的条目content不需要是 an 的实例Ember.Object,该路径也适用于“普通”对象,正如您在示例中使用的那样。


背景

Ember.View基本上呈现如下:

<select>
  {{#if view.prompt}}
    <option value>{{view.prompt}}</option>
  {{/if}}
  {{#each view.content}}
    {{view Ember.SelectOption contentBinding="this"}}
  {{/each}}
</select>

因此,在每次迭代中,当前项目也可用于Ember.SelectOption视图content。这就是为什么content.在指定id/label属性的路径时必须预先添加的原因。说得通?

于 2012-06-19T21:24:22.193 回答