knockout.js - 如何确保 Knockout.js 映射插件不会将 null 映射到属性

标签 knockout.js javascript

使用 Knockout.js 映射插件,如何检查值是否为 null 并返回其他内容?例如,假设我的服务器 JSON 是:

[{'Name': 'Apple Pie'}, {"Name": null}]

Knockout.js 映射插件会将最后一项设置为 null。如何检查它是否为空,如果是,则返回 ko.observable('')?

最佳答案

使用the update mapping ;如果 name 的值为 null,则强制执行默认值。

var data = {
  pies: [
    { name: 'Apple Pie' },
    { name: null }
  ]
};

var mapping = {
  'name': {
    update: function(options) {
      return options.data || '';
    }
  }
}
var viewModel = ko.mapping.fromJS(data, mapping);
var pies = viewModel.pies();

console.log(pies[0].name()); // => 'Apple pie'
console.log(pies[1].name()); // => ''

关于knockout.js - 如何确保 Knockout.js 映射插件不会将 null 映射到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17644582/

相关文章:

knockout.js - 是否可以将 KnockoutJS 与屏蔽输入一起使用?

javascript - 如何从函数内部获取 JavaScript 变量值?

javascript - 为什么我定义 Foo 时它不是一个函数?

javascript - Vue.js 将事件处理程序委托(delegate)给父组件?

javascript - 数据表 Ajax 重新加载在按钮单击时不起作用

javascript - 使 knockout 订户关闭模型并再次打开它

knockout.js - 使用 ko.computed 将输入值格式化为百分比

具有固定标题和固定前导列的 HTML 表格,在标题和第一列中带有 knockout 控件

javascript - 强制 HTTP 请求在浏览器中失败

javascript - 在构建 knockout js 绑定(bind)时隐藏屏幕的最佳方法是什么?