linqts中的方法似乎未定义

时间:2017-10-24 00:29:09

标签: angular linq typescript

我正在学习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部分代码就没有编译,因此这个假设是错误的。

1 个答案:

答案 0 :(得分:0)

显然,当您声明放置某些库的位置时,您需要提供完整路径。在systemjs.config.js中,映射声明为这样(错误!):

var map = {
    'linqts': '/Angular/node_modules/linqts',`

而不是:

var map = {
    'linqts': '/Angular/node_modules/linqts/dist/linq.umd.js',`

我在here

中发现了类似的问题和解决方案