现在我正在使用KnockoutJs,我想开发Chrome打包应用程序。 我想知道如何绑定(bind)数据 MVVM。因为在http://developer.chrome.com说不能在html中使用内联javascript。 JS必须是分隔文件。
那么我该如何编写这个 MVVM 来实现点击呢?甚至更多 knockout ?
<span data-bind="text : $data.name, click : $root.load> </span>
<span data-bind="text:shoppingCart().somethingChange()"></span>
最佳答案
快速版本
除非您对页面进行沙箱处理并删除某些功能,否则您无法真正使用它。
长版
Chrome 打包应用程序要求使用的代码和任何库为 CSP compliant 。也就是说,不可能使用eval()
, new Function()
, 任何 <script></script>
HTML 标签和其他一些东西。
Knockout 将其中一些用于绑定(bind)和模板。因此,您不能将 Knockout 用于 Chrome 打包应用程序。
此外,我发现一些信息表明 Knockout 的开发人员并不打算使其符合 CSP 标准。你可以在他们的Git repo上找到这个.
Chrome 扩展程序也存在一些非常类似的问题。我读到的有关该主题的内容涉及对 iframe 进行沙箱处理...再了解一下 digging ,沙盒会导致页面无法使用某些功能。
唯一的选择是使用 Knockout 的自定义绑定(bind)提供程序。然而,我发现此时使用另一个 MV* 库更具吸引力。
关于javascript - 如何在Chrome打包应用程序中使用Knockout Js进行MVVM?它不允许在 html 中使用内联 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18238812/