ris*_*res 2 javascript google-chrome google-chrome-extension knockout.js google-chrome-app
现在我正在使用KnockoutJs,我想开发Chrome Packeaged App.我想知道如何绑定数据MVVM.因为在http://developer.chrome.com上说不能在html中使用内联javascript.JS必须是分开的文件.
那么我如何编写这个MVVM适用于点击?或者甚至更多的淘汰赛?
<span data-bind="text : $data.name, click : $root.load> </span>
<span data-bind="text:shoppingCart().somethingChange()"></span>
Run Code Online (Sandbox Code Playgroud)
除非您对页面进行沙盒处理并删除某些功能,否则您无法真正使用它.
Chrome Packaged Apps要求所使用的代码和任何库都符合CSP标准.换句话说,这是不可能使用eval()
,new Function()
任何<script></script>
HTML标记和一些其他的东西.
Knockout使用其中一些用于绑定和模板.因此,您无法使用Knockout用于Chrome Packaged Apps.
此外,我发现一些信息指出Knockout的开发人员并不打算使其符合CSP标准.你可以在他们的Git回购中找到这个.
Chrome扩展程序存在一些非常类似的问题.我在这个主题上看到的内容涉及沙箱iframe ...经过一些挖掘后,沙盒将导致页面无法使用某些功能.
唯一的选择是为Knockout使用自定义绑定提供程序.然而,我发现在那时使用另一个MV*库更具吸引力.