【问题标题】:Can a datalist be used with ember.js select数据列表可以与 ember.js 一起使用吗?
【发布时间】:2015-01-09 00:41:44
【问题描述】:

ember.js 1.0

我正在使用一个 ember.js 选择列表,想知道是否可以使用它来代替普通的

<input type=text list=browsers>
 <datalist id=browsers>
   <option value="Firefox">
   <option value="IE">
   <option value="Chrome">
   <option value="Opera">
   <option value="Safari">
</datalist>

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    datalist 是标准 HTML,因此您可以在 Ember 内部使用它(适用于支持数据列表的浏览器)。唯一真正的技巧是原生 Ember input 视图组件不会通过 list 属性来允许您连接 datalist。幸运的是,很容易扩展 Ember.TextView 以使其为所欲为。

    App.DatalistText = Ember.TextField.extend({
      attributeBindings: ['list'],
      list : null
    });
    

    然后在您的模板中,您只需执行以下操作:

    {{view App.DatalistText type="text" 
        value="" 
        class="form-control" 
        placeholder="Country" 
        disabledBinding="isNotEditing"
        list="countries"
        size="50"
    }}
    <datalist id="countries">
      {{#each model}}
        <option {{bindAttr value="this"}}>
      {{/each}}
    </datalist>
    

    这是一个 jsbin:http://jsbin.com/ucanam/977/edit

    【讨论】:

    • 非常感谢 - 虽然这对我有用(因此接受了答案!)我更喜欢选择风格的外观,但能够输入其他选项。然而,这是在理解如何扩展事物方面非常有用。
    • 嗯...我想您可以开发一个自定义小部件,其作用类似于输入/数据列表组合和选择列表的混合体,但我不知道有任何“本机”html 解决方案那。我之前所做的是有一个选择列表,然后在它旁边有一个小的“+”按钮。当您单击按钮时,会弹出一个模式,要求您​​输入新值。当您在模式中单击“保存”时,会创建一个新的 Ember 模型并将其添加到支持选择列表的集合中。
    • @JeremyGreen 但这在最新版本中不起作用,您能帮忙吗? emberjs.jsbin.com/zakiqigafi
    • @VysakhSreenivasan,如下所述,这似乎是最新 Ember 中的一个已知错误。
    【解决方案2】:

    对于 ember.js 1.8,以下代码可以正常工作:

    {{input type="text" value="" class="form-control" list="browsers-list"}}
    <datalist id="browsers-list">
    {{#each b in browsers}}
      <option {{bind-attr value=b}}>
    {{/each}}
    </datalist>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2018-09-12
    相关资源
    最近更新 更多