问题标签 [angular2-universal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 我可以只在使用 Angular2 Universal 的客户端中运行组件方法吗?
我正在编写一个angular2 通用应用程序。它有一个d3图表,但我希望只在客户端(浏览器)上呈现 d3 图表,而不是尝试在服务器上呈现它。angular2 通用接口中是否有一个只能在客户端运行组件方法的接口?
IE
有没有像上面的例子那样允许我ngUniversalBrowser
只在浏览器中运行该方法OnInit
?
angular - Angular 2 Universal:Prerender 不适用于 templateUrl 或 styleUrls
我一直在使用 Angular 2 Universal进行服务器端预渲染。
但是具有直接 html 模板并通过templateUrl引用它们的组件不会预渲染(仅通过 url。使用模板:'...' 一切都很好),但客户端仍然加载。我正在使用asp.net 核心服务器和system.js。
package.json 的一部分:
引导服务器.ts:
索引.cshtml:
app.component.ts:
应用程序.routes.ts
home.component.ts:
app.template.html:
home.template.html:
html 为空:
但我们可以看到成功的服务器端请求:
express - 赋值表达式的左侧不能是常量或只读属性
当我在我的 Express 服务器上使用这一行时,它在 TypeScript 1.x 中运行良好
(的用法mongoose.Promise = global.Promise;
来自猫鼬文档)
更新到 TypeScript 2.x 后,它在终端中显示此错误,并且不会让我启动服务器。
赋值表达式的左侧不能是常量或只读属性。
我该如何解决这个问题?谢谢
angular - 升级到 RC5 后,Angular2 通用错误找不到模块“@angular/compiler/src/template_parser”
我正在使用 angular2 ,webpack 和 angular universal 项目构建良好,但我在运行时收到以下错误。适用于有角 RC4
Error: Cannot find module '@angular/compiler/src/template_parser'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/connecthealth/web-app/node_modules/angular2-universal/dist/node/platform/node.js:25:25)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
http - 当 header 为 { 'Authorization': 'Bearer ' + token } 时,req.body 为空
我使用 Angular 2 作为前端。我试图发送一个 Object { test: 'Hi' }
。
当我的http头是这样的:
我可以使用req.body
.
但是,当我的 http 标头是这样的时:
当我req.body
再次使用时,我得到了一个空的 Object {}
。
我的服务器使用的是 Express.js,而我的 bodyParser 是这样的:
我怎样才能正确地做到这一点?谢谢
node.js - 无法正确读取 config.json(TypeScript、Webpack)
更新:这个 PR解决了这个问题
请注意问题出现的原因并且普通的纯 JavaScript 方法无法解决它可能是因为server.ts正在使用TypeScript和Webpack。检查甘特的答案。并在 github 上跟踪这个问题。
我使用angular/universal-starter作为启动器。我有一个文件config.json
当我阅读server.tsconfig
时:
它在终端中显示:
但是,当我尝试读取server.tsconfig.api
时:
它显示undefined
.
这是我的文件夹结构(其他部分与angular/universal-starter相同)。
当我启动应用程序时,我使用npm start
.
什么可能导致这种情况?谢谢
angular - 错误 TS2300:重复标识符“导出 =”
我使用angular/universal-starter作为启动器,它使用 TypeScript 2 和 Webpack 2。
我添加了包bluebird
和nodemailer
. 添加这些包和相关类型后:
它在终端中给了我这个错误:
/project/node_modules/@types/nodemailer/node_modules/@types/bluebird/index.d.ts (772,5) 中的错误:错误 TS2300:重复标识符“export=”。
/project/node_modules/@types/bluebird/index.d.ts (772,1) 中的错误:错误 TS2300:重复标识符“export=”。
[不确定是否有帮助]注意安装@types/nodemailer后,@type/nodemailer 有自己的 node_modules 文件夹,包括 @type/bluebird(这是一个旧的 bluebird typings 版本 2.0.0):
我的tsconfig.json文件:
我该如何解决这个错误?谢谢
angular - localStorage 未定义(Angular Universal)
我正在使用通用启动器作为主干。
当我的客户端启动时,它会从 localStorage 读取有关用户信息的令牌。
一切正常,但是由于服务器渲染,我在服务器端(终端)得到了这个:
例外:ReferenceError:localStorage 未定义
我从ng-conf-2016-universal-patterns中得到了使用依赖注入来解决这个问题的想法。但是那个演示真的很老了。
假设我现在有这两个文件:
主浏览器.ts
主节点.ts
现在他们使用相同的用户服务。有人可以给出一些代码来解释如何使用不同的依赖注入来解决这个问题吗?
如果有另一种更好的方法而不是依赖注入,那也很酷。
更新 1我正在使用 Angular 2 RC4,我尝试了@Martin 的方式。但即使我导入它,它仍然在下面的终端中给我错误:
终端(npm 开始)
/my-project/node_modules/@angular/core/src/di/reflective_provider.js:240 throw new reflector_exceptions_1.NoAnnotationError(typeOrFunc, params); ^ 错误:无法解析“UserService”(Http,?)的所有参数。确保所有参数都用 Inject 修饰或具有有效的类型注释,并且“UserService”用 Injectable 修饰。
终端(npm 运行观察)
错误 TS2304:找不到名称“LocalStorage”。
我猜它在某种程度上与LocalStorage
from重复angular2-universal
(虽然我没有使用import { LocalStorage } from 'angular2-universal';
),但即使我尝试将我的更改为LocalStorage2
,仍然无法正常工作。
同时,我的 IDE WebStorm 也显示为红色:
顺便说一句,我找到了一个import { LocalStorage } from 'angular2-universal';
,但不知道如何使用它。
UPDATE 2,我改为(不确定是否有更好的方法):
这解决了UPADAT 1中的问题,但现在我在终端出现错误:
例外:TypeError:this.localStorage.getItem 不是函数
angular - ReferenceError:未定义 MouseEvent
我正在尝试在使用angular/universal-starter (TypeScript 2.x) 作为主干的项目中使用ng2-select 。
(我尝试在 angular-cli 生成的项目中添加 ng2-select,但效果很好)
在添加这两行之后:
我的终端中已经出现错误:
这是我的tsconfig.json文件: