1

我有一个 AngularJS 应用程序,我试图从 REST 端点加载我的视图(模板)。出于某种原因,以下代码似乎不起作用。我在日志中看到消息“getTemplates()”,然后什么也没有。没有 XHR 调用,没有返回,什么都没有。我错过了什么?为什么不执行 $http 返回?有没有更好的方法来实现这一点? - 谢谢!

.config(
  [
    '$stateProvider', '$urlRouterProvider', '$httpProvider', '$compileProvider',
    function($stateProvider, $urlRouterProvider, $httpProvider, $compileProvider) {

            $stateProvider.state('applications',
                {
                    url: "/applications",
                    controller: 'ImageManager',
                    templateProvider: [ '$templateCache', function($templateCache) { return $templateCache.get("applications"); } ],
                    resolve: {                
                        'getTemplates' : [
                            '$log', '$rootScope', '$http', '$templateCache',
                            function( $log, $rootScope, $http, $templateCache ) {
                                $log.debug("getTemplates()");  /* I see this. */

                                return 
                                    $http
                                        .get('/api/now/table/x_cqt_cliqr_cliqr_templates?sysparm_limit=10&sysparm_fields=title,html')
                                        .then(
                                            function( response ) {
                                               $log.debug("applications::resolve::getTemplates()");
                                               $log.debug(response);

                                               for(var idx=0; idx < response.data.result.length; idx++) {
                                                  $templateCache.put(response.data.result[idx].title.toLowerCase(), response.data.result[idx].html);
                                                }
                                            },

                                            function( response ) {
                                                $log.error("applications::resolve::getTemplates()");
                                                $log.error(response);
                                            }
                                        );
                            }
                        ],
                    }
                }
            );
        }
    ]
)
4

1 回答 1

1

信不信由你,答案就是删除 return 并让 $http 调用执行。我无法解释为什么它失败了。我认为它仍然会评估通话。

于 2015-10-24T03:39:37.833 回答