Javascript AngularJS变量未在html中显示

Javascript AngularJS变量未在html中显示,javascript,html,angularjs,Javascript,Html,Angularjs,结构 statcontroller.js (function (module) { 'use strict'; var statsController = function ($scope, $rootScope, $timeout, $routeParams, $location, $window, statsService) { $scope.$on('$viewContentLoaded', function (event) { $

结构

statcontroller.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")));
(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")));
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 />
当我将alert()放入d.totalPaidCustomers的statController.js中时,我得到的值为1,其他参数也是如此

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

App.js

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

尝试将状态定义更改为:

.when('/stats', {
    templateUrl: 'tpl/admin/stats.html',
    controller: 'statsController',
    controllerAs: 'vm'
}).
然后将控制器更改为:

(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 vm = this;
        vm.model = {};
        vm.model.stats = {};

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

    module.controller("statsController", statsController);

}(angular.module("app")));
最后,您的观点是:

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

如果我理解正确的话。应该是“model.stats”


问题是我没有将当前范围分配给模型

var模型=此

statcontroller.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")));
(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 />
付费客户总数:{{stats.stats.totalPaidCustomers}}
条带确认客户:{{stats.stats.stripeConfirmedCustomers}}

但是,我不得不更改var的名称(stats.stats),这让我非常困惑。

html中没有显示任何内容,我已经用App.js路由设置更新了我的问题。这是model.stats对象{totalPaidCustomers=1,stripeConfirmedCustomers=2}的console.log中的内容。您将所有这些绑定放入其中,却什么也看不到?我更新了答案以包含更多内容。我在model.stats的console.log对象{totalPaidCustomers=1,stripeConfirmedCustomers=2}中有这个,这是html检查:出于某种原因,它没有在html中显示任何内容。它伤了我的脑筋你能用小提琴或弹琴复制吗?您是否在浏览器的开发工具控制台日志中看到任何其他随机错误?您的
型号
不在StatController中的
$scope
上。您正在使用ui路由器吗?
Total paid customers: {{stats.stats.totalPaidCustomers}}<br/>
Stripe confirmed customers: {{stats.stats.stripeConfirmedCustomers}}<br />