刷新后AngularJS页面空白

时间:2016-10-12 15:24:57

标签: angularjs state

我正在使用AngularJS构建Web应用程序。我正在使用ui-router,我已经定义了这样的状态:

//appContacts.js
(function () {
    "use strict";
    var app = angular
        .module('appContacts', ['ui.router', 'angularUtils.directives.dirPagination'])
        .config(['$stateProvider', '$locationProvider', '$urlRouterProvider',
                        function ($stateProvider, $locationProvider, $urlRouterProvider) {
                            $urlRouterProvider.otherwise("/");
                            $stateProvider
                                 .state("home", {
                                     url: "/",
                                     templateUrl: "views/contactsView.html",
                                     controller: "contactsController",
                                     controllerAs: "vm"
                                 })
                                 .state("organization", {
                                     url: "/organizations/:Id",
                                     templateUrl: "views/organizationDetail.html",
                                     params: { Id: null },
                                     controller: "organizationsController",
                                     controllerAs: "vm"
                                 })
                                .state("contact", {
                                    url: "/contact/:Id",
                                    templateUrl: "views/contactDetails.html",
                                    params: { Id: null },
                                    controller: "contactsDetailController",
                                    controllerAs: "vm"
                                })

                            $locationProvider.html5Mode({
                                enabled: true,
                                requireBase: false,
                                rewriteLinks: true
                            });

                            $locationProvider.html5Mode(true);
                        }
        ]);
})();

我使用HTTP方法从数据库获取请求的信息。我有两个问题:

  1. 当我刷新页面时,页面变为空白。知道我做错了吗?
  2. 主页控制器自动调用使用ng-repeat填充表的HTTP方法。这意味着无法像http://localhost:50895/contact/the-id那样直接访问其他页面,因为没有存储数据。我总是要访问主页来加载数据。如何保存并将数据提供给所有页面/状态/控制器?
  3. 编辑:

    我在控制台中显示4个错误。 enter image description here

1 个答案:

答案 0 :(得分:0)

  1. 您可以调试它并检查浏览器控制台是否有任何错误或异常吗?

  2. 您可以通过三种方式传递数据:

  3. a)使用 $ rootScope ,但这不被视为正确的编码标准

    b)利用AngularJs提供的内置 .service(),这是一个单例对象,意味着在第一个控制器中设置的值可以在任何地方使用。但是如果刷新页面,该值将被删除。这被认为是比使用 $ rootScope

    更好的编码标准

    c)您可以使用 localStorage sessionStorage ,使用此功能即使在页面刷新后也可以检索数据。数据将以字符串形式存储,因此需要进行解析。

    还有一种方法可以存储数据,Cookies。但这用于存储小字符串值。