1. <tfoot id='1BV14'></tfoot>
      <i id='1BV14'><tr id='1BV14'><dt id='1BV14'><q id='1BV14'><span id='1BV14'><b id='1BV14'><form id='1BV14'><ins id='1BV14'></ins><ul id='1BV14'></ul><sub id='1BV14'></sub></form><legend id='1BV14'></legend><bdo id='1BV14'><pre id='1BV14'><center id='1BV14'></center></pre></bdo></b><th id='1BV14'></th></span></q></dt></tr></i><div id='1BV14'><tfoot id='1BV14'></tfoot><dl id='1BV14'><fieldset id='1BV14'></fieldset></dl></div>

      <small id='1BV14'></small><noframes id='1BV14'>

      <legend id='1BV14'><style id='1BV14'><dir id='1BV14'><q id='1BV14'></q></dir></style></legend>
        <bdo id='1BV14'></bdo><ul id='1BV14'></ul>
    2. Angular Run Block - 使用 UI-Router $stateProvider 解决 Promise

      Angular Run Block - Use UI-Router $stateProvider to Resolve Promise(Angular Run Block - 使用 UI-Router $stateProvider 解决 Promise)

      <small id='cYHEv'></small><noframes id='cYHEv'>

        <tbody id='cYHEv'></tbody>
      <legend id='cYHEv'><style id='cYHEv'><dir id='cYHEv'><q id='cYHEv'></q></dir></style></legend>
        <bdo id='cYHEv'></bdo><ul id='cYHEv'></ul>
              <tfoot id='cYHEv'></tfoot>

                <i id='cYHEv'><tr id='cYHEv'><dt id='cYHEv'><q id='cYHEv'><span id='cYHEv'><b id='cYHEv'><form id='cYHEv'><ins id='cYHEv'></ins><ul id='cYHEv'></ul><sub id='cYHEv'></sub></form><legend id='cYHEv'></legend><bdo id='cYHEv'><pre id='cYHEv'><center id='cYHEv'></center></pre></bdo></b><th id='cYHEv'></th></span></q></dt></tr></i><div id='cYHEv'><tfoot id='cYHEv'></tfoot><dl id='cYHEv'><fieldset id='cYHEv'></fieldset></dl></div>
              • 本文介绍了Angular Run Block - 使用 UI-Router $stateProvider 解决 Promise的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                UI-Router 不同于 AngularngRoute.它支持普通 ngRoute 可以做的所有事情以及许多额外的功能.

                UI-Router is different than Angular's ngRoute. It supports everything the normal ngRoute can do as well as many extra functions.

                我正在将我的 Angular 应用程序从 ngRoute 更改为 UI-Router.但我无法完全弄清楚如何以编程方式注入 resolve 函数——我在 Controllerconfig 之外使用的一段代码.

                I am changing my Angular app from ngRoute to UI-Router. But I cannot quite figure out how to inject resolve function programmatically - the piece of code that I use outside Controller and config.

                因此,使用标准 AngularngRoute 我可以在 Angular 运行中动态注入我的 resolve promise块:

                So, with standard Angular's ngRoute I can dynamically inject my resolve promise in the Angular run block:

                app.run(function ($route) {
                  var route = $route.routes['/'];
                  route.resolve = route.resolve || {};
                  route.resolve.getData = function(myService){return myService.getSomeData();};
                });
                

                现在我如何使用 UI-Router 以类似的方式注入 resolve promise?我尝试通过 $stateProvider 来访问 state,但这对我来说失败了.

                Now how do I inject resolve promise in a similar way using UI-Router? I tried passing $stateProvider to get access to states but that was failing for me.

                angular.module('uiRouterSample').run(
                  [          '$rootScope', '$state', '$stateProvider'
                    function ($rootScope,   $state, $stateProvider) {
                
                      //$stateProvider would fail
                

                推荐答案

                您可以使用 resolve 在控制器加载下一个状态之前为其提供数据.要访问已解析的对象,您需要将它们作为依赖项注入到控制器中.

                You can use resolve to provide your controller with data before it loads the next state. To access the resolved objects, you will need to inject them into the controller as dependencies.

                让我们以购物清单应用程序为例.我们将从定义我们的应用程序模块开始,并包含 ui.router 作为依赖项.:

                Let's use a shopping list application as an example. We'll start by defining our application module, and including ui.router as a dependency.:

                angular.module('myApp', ['ui.router']);
                

                我们现在要定义特定于我们应用程序的购物清单页面的模块.我们将定义一个 shoppingList 模块,包括该模块的状态、该状态的解析以及控制器.

                We now want to define the module that will be specific to the shopping list page of our application. We'll define a shoppingList module, include the states for that module, a resolve for that state, and the controller.

                购物清单模块

                angular.module('myApp.shoppingList').config(function ($stateProvider) {
                
                    $stateProvider.state('app.shoppingList', {
                        url: '/shopping-list',
                        templateUrl: 'shopping-list.html',
                        controller: 'ShoppingListController',
                        resolve: {
                            shoppingLists: function (ShoppingListService) {
                                return ShoppingListService.getAll();
                            }
                        }
                    });
                
                });
                

                我们现在可以将解析的对象作为依赖注入到我们的控制器中.在上述状态下,我将一个对象解析为名称 shoppingLists.如果我想在我的控制器中使用这个对象,我将它作为一个具有相同名称的依赖项包含在内.

                We now can inject our resolved objects into our controller as dependencies. In the above state, I am resolving an object to the name shoppingLists. If I want to use this object in my controller, I include it as a dependency with the same name.

                购物清单控制器

                angular.module('myApp.shoppingList').controller('ShoppingListController', function ($scope, shoppingLists) {
                    $scope.shoppingLists = shoppingLists;
                });
                

                有关更多详细信息,请阅读 Angular-UI Wiki,其中包括 Angular-UI Wikia href="https://github.com/angular-ui/ui-router/wiki#resolve" rel="noreferrer">使用解析的深入指南.

                For additional details read the Angular-UI Wiki, which includes an in-depth guide to using resolve.

                这篇关于Angular Run Block - 使用 UI-Router $stateProvider 解决 Promise的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                Fetch multiple links inside foreach loop(在 foreach 循环中获取多个链接)
                Backbone Fetch Request is OPTIONS method(Backbone Fetch Request 是 OPTIONS 方法)
                Fetch API leaks memory in Chrome(Fetch API 在 Chrome 中泄漏内存)
                How can I download and save a file using the Fetch API? (Node.js)(如何使用 Fetch API 下载和保存文件?(Node.js))
                Send blob data to node using fetch, multer, express(使用 fetch、multer、express 将 blob 数据发送到节点)
                Sending a custom User-Agent string along with my headers (fetch)(发送自定义用户代理字符串以及我的标头(获取))
                  <bdo id='Uoeci'></bdo><ul id='Uoeci'></ul>

                    <tfoot id='Uoeci'></tfoot>

                      <small id='Uoeci'></small><noframes id='Uoeci'>

                      <legend id='Uoeci'><style id='Uoeci'><dir id='Uoeci'><q id='Uoeci'></q></dir></style></legend>

                      <i id='Uoeci'><tr id='Uoeci'><dt id='Uoeci'><q id='Uoeci'><span id='Uoeci'><b id='Uoeci'><form id='Uoeci'><ins id='Uoeci'></ins><ul id='Uoeci'></ul><sub id='Uoeci'></sub></form><legend id='Uoeci'></legend><bdo id='Uoeci'><pre id='Uoeci'><center id='Uoeci'></center></pre></bdo></b><th id='Uoeci'></th></span></q></dt></tr></i><div id='Uoeci'><tfoot id='Uoeci'></tfoot><dl id='Uoeci'><fieldset id='Uoeci'></fieldset></dl></div>

                          <tbody id='Uoeci'></tbody>