我正在学习Angular4,目前正努力让linqts工作。
在我的room-list.component.ts
中,我将其导入为:
import { List } from 'linqts';
下面几行我的组件类定义如下:
export class RoomListComponent
{
public Rooms: List<Room>;
这仍然可行。 Rooms
由signalR请求返回的其他代码分配,如下所示:
this._roomService.GetListResult.subscribe((rooms: List<Room>) =>
{
this.Rooms = rooms;
});
所以我假设List
正在工作(因为我将Rooms: Room[]
的所有声明替换为Rooms: List<Room>
),但是...当我执行任何这样的代码时(函数没有&# 39;重要的是:Select, Where, etc.
,没有任何作用):
Rooms.Add(...
它说的是这样的errors.ts:42 ERROR TypeError: _this.Rooms.Add is not a function
。此外,如果我做这样无辜的事情(直接取自linqts的主要例子),那就完全疯了:
let arr = new List<number>([1, 2, 3, 4, 5]);
突然间它引发了两个错误:
zone.js:1057 GET http://localhost:56040/Angular/linqts 404 (Not Found)
和
Unhandled Promise rejection: Fetch error: 404 Not Found
Instantiating http://localhost:56040/Angular/linqts
Loading http://localhost:56040/Angular/Appjs/components/room/room-list.component.js
Loading app ; Zone: <root> ; Task: Promise.then ; Value: Error: Fetch error: 404 Not Found
Instantiating http://localhost:56040/Angular/linqts
Loading http://localhost:56040/Angular/Appjs/components/room/room-list.component.js
Loading app
at fetch.js:37
at ZoneDelegate.invoke (zone.js:392)
at Zone.run (zone.js:142)
at zone.js:873
at ZoneDelegate.invokeTask (zone.js:425)
at Zone.runTask (zone.js:192)
at drainMicroTaskQueue (zone.js:602)
at <anonymous> Error: Fetch error: 404 Not Found
at http://localhost:56040/Angular/node_modules/systemjs/dist/system.src.js:1475:13
at ZoneDelegate.invoke (http://localhost:56040/Angular/node_modules/zone.js/dist/zone.js:392:26)
at Zone.run (http://localhost:56040/Angular/node_modules/zone.js/dist/zone.js:142:43)
at http://localhost:56040/Angular/node_modules/zone.js/dist/zone.js:873:57
at ZoneDelegate.invokeTask (http://localhost:56040/Angular/node_modules/zone.js/dist/zone.js:425:31)
at Zone.runTask (http://localhost:56040/Angular/node_modules/zone.js/dist/zone.js:192:47)
at drainMicroTaskQueue (http://localhost:56040/Angular/node_modules/zone.js/dist/zone.js:602:35)
at <anonymous>
我做错了什么?
我也尝试使用Google搜索与linqts相关的任何问题,但我很确定它与它无关,更多的是因为某些原因它找不到这些功能(尽管在VS2017中使用F12导航是一个成功)。我会猜测它是以错误的方式导入的,但我怎么说呢?最后的假设是它完全没有导入,但是如果删除import
部分代码就没有编译,因此这个假设是错误的。
答案 0 :(得分:0)
显然,当您声明放置某些库的位置时,您需要提供完整路径。在systemjs.config.js
中,映射声明为这样(错误!):
var map = {
'linqts': '/Angular/node_modules/linqts',`
而不是:
var map = {
'linqts': '/Angular/node_modules/linqts/dist/linq.umd.js',`
我在here
中发现了类似的问题和解决方案