KnockoutJS数据绑定optionsCaption

时间:2017-04-14 17:54:15

标签: javascript knockout.js

var vm = {
  WeatherId: ko.observable(),
  WeatherConditions: [{
    Id: '1',
    Name: 'Sunny'
  }, {
    Id: '2',
    Name: 'Rainy'
  }, {
    Id: '3',
    Name: 'Cloudy'
  }, {
    Id: '4',
    Name: 'Snowy'
  }]
};

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js"></script>
<select data-bind="options: WeatherConditions,   
value: WeatherId, 
optionsText:'Name',
optionsCaption: 'Select today weather'">
</select>

我有这个KO数据绑定片段,我想将optionsCaption设置为“选择今天的天气”。我无法在中间插入撇号 - 需要帮助。

2 个答案:

答案 0 :(得分:1)

用反斜杠\

逃避撇号

optionsCaption: 'Select today\'s weather'">

var vm = {
  WeatherId: ko.observable(),
  WeatherConditions: [{
    Id: '1',
    Name: 'Sunny'
  }, {
    Id: '2',
    Name: 'Rainy'
  }, {
    Id: '3',
    Name: 'Cloudy'
  }, {
    Id: '4',
    Name: 'Snowy'
  }]
};

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js"></script>
<select data-bind="options: WeatherConditions,   
value: WeatherId, 
optionsText:'Name',
optionsCaption: 'Select today\'s weather'">
</select>

答案 1 :(得分:0)

您只需要转义'today\'s

var vm = {
  WeatherId: ko.observable(),
  WeatherConditions: [{
    Id: '1',
    Name: 'Sunny'
  }, {
    Id: '2',
    Name: 'Rainy'
  }, {
    Id: '3',
    Name: 'Cloudy'
  }, {
    Id: '4',
    Name: 'Snowy'
  }]
};

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js"></script>
<select data-bind="options: WeatherConditions,   
value: WeatherId, 
optionsText:'Name',
optionsCaption: 'Select today\'s weather'">
</select>

这不是一个KnockoutJS的东西,它是一个基本的JavaScript东西。要在'引用的字符串中添加',您可以使用转义:today\'s

请注意,data-bind属性的内容是没有{}的JavaScript对象初始值设定项,其内容在一系列with块中进行评估以提供上下文。 (从字面上看。敲除构建函数的文本来做到这一点,使用尽可能多的with块来嵌套级别,最后使用return {" + theDataBindAttributeText};,然后使用new Function从中构建一个函数,并调用它来获取绑定。)