gpt4 book ai didi

javascript - 渲染前加载的 Angular 页面数据

转载 作者:行者123 更新时间:2023-11-30 05:39:42 25 4
gpt4 key购买 nike

我是 Angular 的新手,所以我的问题对于精明的 Angular 开发人员来说可能听起来很愚蠢。

angular最大的卖点就是数据封装方便维护。在呈现 View 之前需要加载页面的数据。从文档中,我想我们在路由配置中使用 resolve 结构和 $q.promise 来实现它。嗯,要做到这一点,我需要将我的 Controller 、数据服务模块或我的数据模型注入(inject)到 app.config 中。不幸的是,配置不允许注入(inject)(根据文档)。所以我被卡住了。

我的下一次尝试是为 beforeRoutingChange(类似的东西)附加一个事件处理程序来执行加载。我不喜欢这种方法,但如果我坚持数据封装,这似乎是唯一可行的方法—— Controller 或模型对象控制加载。

有没有更好的方法? Angular Controller 是否应该为加载数据提供回调?

最佳答案

首先,让我纠正一个小错误。 AngularJS 中没有任何内容需要在第一次呈现之前加载页面数据。这很好,但 HTML 中的绑定(bind)通常可以处理最初显示范围内没有数据的情况。因此,您始终可以加载到一个“空”页面,并在服务调用加载数据并将其放入 $scope 后填充它。

但除此之外,让我向您介绍 Egghead.io 上的一系列三个短视频,它们应该可以帮助您按照您想要的方式获得它:https://egghead.io/search?q=resolve

观看该页面上的视频 35、36 和 37。这三者的总时间将少于您的 15 分钟,但它应该非常清楚如何执行您想要执行的解决方案。您应该能够像他注入(inject) $timeout 一样将 $http 注入(inject)到函数中,并且您可以进行您想进行的调用以获取初始数据。视频 #37 非常好,因为它涵盖了错误处理案例,即当您的服务调用出现问题并且您不想向最终用户显示漂亮的空白页面时该怎么做。

关于javascript - 渲染前加载的 Angular 页面数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21559382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com