我遇到了一些令人虚弱的东西。
我现在在一个项目中相当远,而且在某些时候它肯定需要在服务器端呈现。
通过网络应用程序,用户可以上传个人资料图片等图片以及#34;常规"图片。
我使用Foliotek的Croppie(https://github.com/Foliotek/Croppie)进行裁剪,效果很好,正是我需要的。
但Croppie依赖于jQuery。昨天我发现,如果我想让应用程序服务器端呈现,那可能是个问题。
所有的jQuery都用在 ngAfterViewInit生命周期钩子中,所以我希望这能使它成为服务器端的渲染证明吗?
我知道有可用的ng2-img-cropper,但我并不那么热衷于实现那个。但是,如果我可以将ng2-img-cropper与服务器端渲染一起使用,那么我将不得不这样做。
或者有什么东西要好得多吗?
答案 0 :(得分:1)
您可以在服务器上使用jQuery,使用Node,AFAIK。只需浏览npm并搜索合适的模块即可。不要忘记,Node没有DOM实现,所以你也需要虚拟DOM模块。
例如,您可以将this jQuery wrapper与this DOM implementation一起使用。例如:
npm install jsdom
npm install jQuery
var jsdom = require('jsdom').jsdom
var myWindow = jsdom().createWindow()
var $ = require('jQuery')
var jq = require('jQuery').create()
var jQuery = require('jQuery').create(myWindow)
$("<h1>test passes</h1>").appendTo("body")
console.log($("body").html());
答案 1 :(得分:0)
我发现有一个Angular Universal(服务器端渲染)入门项目可用:
https://github.com/angular/universal-starter
我克隆它并像我在开发版中一样实现了Croppie,一切正常!
所以...我想知道为什么我多次读过如果在你的Angular 2+ SSR项目中使用jQuery会完全破坏。 Max Schwarzmuller也在Udemy的讲座中这么说。无论如何。我很高兴发现一切仍然有效。
答案 2 :(得分:0)
据我所知,每当jquery使用“ Window”时,ssr就会感到困惑,因为在服务器中我们没有window(窗口在浏览器中)。 但通常,jQuery可以正常工作。