knockout js if statement to显示基于布尔数据类型的值

Bri*_*els 7 html javascript knockout.js

我试图根据表值True或False显示值.例如,如果Value为True,那么我希望它说Say Supported,如果它是False,那么我想让它说不支持!这是我的HTML代码

<p><input type="text"  data-bind="value: Support"  /></p>
Run Code Online (Sandbox Code Playgroud)

Java脚本代码

$(function() {
  dm.viewModel = function() {
    var clients = ko.observableArray(),
      selectedClient = ko.observable(),

      clientChanged = function() {
        $.getJSON(dm.WebServices + "/dm/get/clientinfo?client=" + encodeURIComponent(selectedClient()), function(data) {
          if (data != null) {
            dm.viewModel.Name(selectedClient());
            dm.viewModel.Support(data[0]['Support']);
          }
        })
        $('#divClientData').show();
      },

      LoadClients = function() {
        $('#divClientData').hide();
        $.getJSON(dm.WebServices + "/dm/get/clientlist", function(data) {
          $.each(data, function(key, val) {
            clients.push(val);
          });
        });
      },

      Name = ko.observable(),
      Support = ko.observable(),

      return {
        Name: Name,
        Support: Support
      };
  }();

  ko.applyBindings(dm.viewModel);
  dm.viewModel.LoadClients();
})
Run Code Online (Sandbox Code Playgroud)

Kon*_*nev 8

在这种情况下,您可以评估属性并根据值进行渲染.甚至可以在绑定内部提供功能.你可以用这个:

<input type="text"  data-bind="value: Support() ? 'Supported' : 'Not Supported'"  />
Run Code Online (Sandbox Code Playgroud)


Jas*_*lor 1

在本例中,您要寻找的是 ko.compulated()。

编辑:(支持似乎正在作为数据集中的值使用)向您的 ViewModel 添加一个新值,如下所示:

IsSupported = ko.computed(function(){
    if(this.Support() == true){
        return "Supported";
    } else {
        return "Not Supported";
    }
}, this)
Run Code Online (Sandbox Code Playgroud)

然后,在标记中,您将需要稍微更改数据绑定:

<p><input type="text" data-bind="value: IsSupported" /></p>
Run Code Online (Sandbox Code Playgroud)

或者,如果您不想更改“支持”字段,则必须按照其他评论者的建议在 HTML 中执行以下操作:

<p><input type="text"  data-bind="value: (Support() ? 'Supported' : 'Not Supported')"  /></p>
Run Code Online (Sandbox Code Playgroud)

我推荐前者,但是,实际上,您应该将该逻辑隐藏在 ViewModel 中。

(有关计算的更多信息,请参阅 KO 文档:http://knockoutjs.com/documentation/compulatedObservables.html