首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >knockout.js为<select>和<option>绑定不同文本

knockout.js为<select>和<option>绑定不同文本
EN

Stack Overflow用户
提问于 2013-10-25 10:28:07
回答 1查看 64关注 0票数 1

在某种程度上,是否可以将我的选择(元素中出现的文本)与我的选项文本分开,以便我可以修剪它并以更好看的方式返回。

例如,在这个杰斯宾中,我希望在显示为选定元素时,修剪所选的项并在末尾添加三个点(已经用CSS尝试过了,但由于浏览器的不同,我放弃了)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-25 10:41:01

您可以使用计算来创建一个包装器对象,该对象可以修剪您的文本:

代码语言:javascript
代码运行次数:0
运行
复制
var ItemModel = function(value){
  var self = this;

  self.value = ko.observable(value);
  self.text = ko.computed(function(){
    val = self.value();
    if (val.length > 15){
      return val.substring(0, 15) + "...";
    }
    return val;
  });
};

添加使用它而不是普通的js对象:

代码语言:javascript
代码运行次数:0
运行
复制
self.listOptions = ko.observableArray([
    new ItemModel('Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci'),
    new ItemModel('Neque porro quisquam est qui dolorem ipsum'),
    new ItemModel('Proin ultrices, tellus id placerat congue, neque justo commodo purus, et pulvinar massa')
]);

此外,还需要修改绑定,以便为valuetext使用不同的属性。

代码语言:javascript
代码运行次数:0
运行
复制
<select data-bind="foreach: listOptions, value: selectedValue, attr: {title : selectedValue}" >
  <option data-bind="text: text, value: value"></option>
</select>

下面是工作jsbin:http://jsbin.com/oFIdAXO/3/edit

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19587338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档