角点语法,承诺不起作用

时间:2015-07-20 13:49:35

标签: angularjs ionic-framework angular-ui-router ionic angular-promise

我在$ stateProvider

中通过一个服务返回一个承诺

然后我在实例化控制器之前将promise添加到我的控制器视图模型

我正在尝试使用点语法来访问promise的不同部分,但它不起作用

当我展示整个承诺(vm.detail = historyDe​​tailPromise)时,它只显示为JSON

HELP !!

depositDetail.html

(function () {
    'use strict';

    angular
        .module('app.history')
        .config(stateProvider)
        .controller('HistoryDetail', HistoryDetail);

    stateProvider.$inject = ['$stateProvider'];
    HistoryDetail.$inject = ['historyDetailPromise'];

    /* @ngInject */
    function stateProvider($stateProvider){
        $stateProvider
            .state('app.history-detail', {
                url: "/history/:id",
                views: {
                    'menuContent': {
                        templateUrl: "app/history/depositDetail.html",
                        controller: 'HistoryDetail as vm',
                        resolve: {
                            historyDetailPromise: function(historyService, $stateParams){
                                return historyService.historyDetail($stateParams.id);
                            }
                        }
                    }
                }
            })
    }

    /* @ngInject */
    function HistoryDetail(historyDetailPromise) {
        /* jshint validthis: true */
        var vm = this;

        vm.activate = activate;
        vm.title = 'HistoryDetail';
        vm.detail = historyDetailPromise;

        activate();

        ////////////////

        function activate() {
        }


    }

})();
<ion-view view-title="{{vm.title}}">
  <ion-content>
    <h1>{{vm.title}}</h1>
    <h1>{{vm.detail.id}}</h1>
  </ion-content>
</ion-view>

1 个答案:

答案 0 :(得分:0)

我实际需要做的就是使用vm.detail = historyDe​​tailPromise [0];在我的控制器中,因为返回的promise是一个数组而不是一个对象,我错过了[0]