小编Joe*_*lly的帖子

KnockoutJS - 使用ko.mapping插件强制特定字段的编号

当我使用ko.mapping.toJSON它时,我将所做的任何更改转换为字符串,它们需要是数字.我尝试使用自定义映射,如下所示:

    var mapping = {
   'y': {
        update: function(options) {
                return parseFloat(options.data);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

...但这只会将它们作为数字保留在页面的内容中.由于我使用它来更新和由HighCharts.js引入的外部JSON,因此即使在toJSON之后,数字也需要保留数字.

从之前的答案我可以使用:

//override toJSON to turn it back into a single val
    mappedData.prototype.toJSON = function() {
       return parseInt(ko.utils.unwrapObservable(this.val), 10);  //parseInt if you want or not 
    };
Run Code Online (Sandbox Code Playgroud)

...游泳工作.但是这只是JSON中的单个值类型,因此我不清楚如何使用相同的覆盖.我是否还需要在此实例中创建一个全新的对象来执行此操作.或者他们的东西更简洁?

knockout-mapping-plugin knockout.js

3
推荐指数
1
解决办法
4094
查看次数

用 webpack-dev-derver 监听客户端的热更新事件?

这有点边缘情况,但了解它会有所帮助。

在使用 webpack-dev-server 开发扩展以保持扩展代码最新时,听“webpackHotUpdate”会很有用

带有内容脚本的 Chrome 扩展程序通常有两个方面:

  1. 背景
  2. 注入内容脚本

当使用带有 HMR 的 webpack-dev-server 时,后台页面保持同步就好了。但是,内容脚本需要重新加载扩展以反映更改。我可以通过监听来自 hotEmmiter 的“webpackHotUpdate”事件然后请求重新加载来解决这个问题。目前,我以一种可怕且非常不可靠的hacky方式进行这项工作。

var hotEmitter = __webpack_require__(XX)

hotEmitter.on('webpackHotUpdate', function() {
    console.log('Reloading Extension')
    chrome.runtime.reload()
})
Run Code Online (Sandbox Code Playgroud)

XX 仅表示当前分配给发射器的编号。正如您可以想象的那样,每当构建发生变化时,这都会发生变化,因此这是一种非常临时的概念证明。

我想我可以设置我自己的套接字,但这似乎有点矫枉过正,因为事件已经被转移,我只是想听听。

我最近才对 webpack 生态系统更加熟悉,因此非常感谢任何指导。

javascript webpack-dev-server hot-module-replacement

2
推荐指数
1
解决办法
2223
查看次数