[AngularJS]AngularJS 变量不显示在 html 中

发布时间: 2017/4/16 21:31:36
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

结构

statsController.js

(function (module) {
    'use strict';

    var statsController = function ($scope, $rootScope, $timeout, $routeParams, $location, $window, statsService) {
        $scope.$on('$viewContentLoaded', function (event) {
            $window.ga('send', 'pageview', { page: $location.url() });
        });

        var model = {};
        model.stats = {};

        statsService.getStats().then(function (d) {
            model.stats = d;
        });
    };

    module.controller("statsController", statsController);

}(angular.module("app")));

statsService.js

(function (app) {

    var statsService = function (webapi) {

        var model = {};

        model.getStats = function () {
            return webapi.get('stats/getstats');
        }

        return model;
    };

    app.factory("statsService", statsService);
    statsService.$inject = ['webapi'];

}(angular.module("app")))

stats.html

Total paid customers: {{statsController.model.totalPaidCustomers}}<br/>
Stripe confirmed customers: {{statsController.model.stripeConfirmedCustomers}}<br />

结果从 API:

{"totalPaidCustomers":1,"stripeConfirmedCustomers":2}

当我把 alert () 放在statsController.js的 d.totalPaidCustomers 我获得价值 1,相同的其他参数。

所以唯一的问题是在 html 中显示这。

App.js

.when('/stats', {
            templateUrl: 'tpl/admin/stats.html',
            controller: 'statsController',
            controllerAs: 'stats'
          }).

解决方法 1:

问题是我没有将当前作用域分配给模型。

var 模型 = 这;

statsController.js

(function (module) {
    'use strict';

    var statsController = function ($scope, $rootScope, $timeout, $routeParams, $location, $window, statsService) {
        $scope.$on('$viewContentLoaded', function (event) {
            $window.ga('send', 'pageview', { page: $location.url() });
        });

        var model = this;
        model.stats = {};

        statsService.getStats().then(function (d) {
            model.stats = d;
        });
    };

    module.controller("statsController", statsController);

}(angular.module("app")));

然后在 html 中调用︰

Total paid customers: {{stats.stats.totalPaidCustomers}}<br/>
Stripe confirmed customers: {{stats.stats.stripeConfirmedCustomers}}<br />

要更改名称的 var though(stats.stats) 混淆死我。

官方微信
官方QQ群
31647020