【问题标题】:Angular 2 HTTP (Tour of Heroes Tutorial - angular website)Angular 2 HTTP(英雄之旅教程 - Angular 网站)
【发布时间】:2017-03-26 03:23:10
【问题描述】:

下面的教程在这里:https://angular.io/docs/ts/latest/tutorial/toh-pt6.html

当前代码:https://github.com/GreenAnts/Angular2-tour-of-heroes-tutorial

(注意:http必须工作,因为我可以查看英雄,而仪表板正在查看英雄......只有当我查看英雄详细信息时,这对我来说没有意义,因为我从来没有改变我能想到的英雄细节方法。)

尝试查看英雄详情时出错:

我不知道它是什么,我假设它一定是我忽略的一些简单的东西,但我真的无法弄清楚,因为我被卡住了,任何帮助将不胜感激。

我在教程中这样说:

更新英雄详情

我们可以在英雄详情视图中编辑英雄的名字。前进 试试看。当我们输入时,英雄名称会在视图标题中更新。 但是当我们点击返回按钮时,更改就会丢失!

以前没有丢失更新,这是怎么回事?当应用程序使用 模拟英雄列表,直接对英雄对象进行了更改 单一的、应用范围内的共享列表。现在我们正在从 服务器,如果我们希望更改保持不变,我们需要将它们写回 到服务器。

起初我认为这可能是由于这个原因,但它说我们应该能够访问详细视图,所以我假设它是其他原因。

显示我可以访问其他组件的数据(没有错误):

【问题讨论】:

    标签: http angular typescript error-handling


    【解决方案1】:

    结果要简单得多,我应该先看看那里。呵呵!

    您的 baseHref 为空。那是:

    <base href="" />
    

    应该是:

    <base href="/" />
    

    您可能想要修复的其他一些问题:

    • 每个组件中的“moduleId: module.id”都会在打包应用程序以进行生产时给您带来问题。
    • getHero 方法的签名是返回多个英雄:Promise of Hero 数组。我把它改成了单英雄的承诺(没有括号。)

    目前:

    getHero(id: number): Promise<Hero[]> {
        return this.getHeroes()
        .then(heroes => heroes.find(hero => hero.id === id))
    }
    

    应该是:

    getHero(id: number): Promise<Hero> {
        return this.getHeroes()
        .then(heroes => heroes.find(hero => hero.id === id))
    }
    
    • HTML 和样式 URL 并不总是按定义工作:

      templateUrl: './templates/app.component.html',

      styleUrls: ['./styles/app.component.css']

    像这样在前面添加'app':

    templateUrl: 'app/templates/app.component.html',
    styleUrls: ['app/styles/app.component.css']
    
    • 您的 node_modules 存储在 Git 中,它们被排除在您的 .gitignore 中,但我猜您是在忽略文件之前提交的。您可以安全地删除那些本地提交,这样它们就不会存储在 Git 中,然后运行“npm install”以仅在本地恢复它们。

    【讨论】:

    • github.com/GreenAnts/Angular2-tour-of-heroes-tutorial/blob/… github.com/GreenAnts/Angular2-tour-of-heroes-tutorial/blob/… 抱歉,我对正在发生的一切还没有 100% 的信心,因为我还在学习,但我认为这就是这里的设置。虽然我想知道关于 url 的同样的事情。不知道那个网址是从哪里来的。但是,当我更改该网址时,我的仪表板和英雄组件会中断。在哪里工作atm。所以我认为这不是问题,尽管我可能错了。
    • 这很奇怪,因为我可以访问“API”,因为我在其他页面上获取数据
    • 运气不好啊...?
    • 编辑了答案。我没有运气,但让它工作,见上文。它现在很好地显示了细节。如果你想让我把它放在 GitHub 上,请告诉我,我可以做一个 PR,包括 CLI 设置。
    • 感谢您的帮助,不会将其标记为已回答,因为仍想找出问题所在。但无论哪种方式,感谢您的帮助。 Angular-cli 是大部分的标准吗?不是还在测试阶段吗?
    猜你喜欢
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多