Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:由于服务的异步性质,函数的计算结果总是为false_Javascript_Angularjs_Angularjs Scope_Angularjs Service - Fatal编程技术网

Javascript AngularJS:由于服务的异步性质,函数的计算结果总是为false

Javascript AngularJS:由于服务的异步性质,函数的计算结果总是为false,javascript,angularjs,angularjs-scope,angularjs-service,Javascript,Angularjs,Angularjs Scope,Angularjs Service,我的模板看起来像 <div data-ng-if="budgetSummaryExists()"> <span>You have not budget</span> <button type="button" class="btn btn-danger" data-ng-click="setRoute('budgets')">Create Budget

我的模板看起来像

<div data-ng-if="budgetSummaryExists()">
        <span>You have not budget</span>
        <button type="button" class="btn btn-danger"
                data-ng-click="setRoute('budgets')">Create
            Budget
        </button>
    </div>
    <div data-ng-if="$scope.budgetSummaryExists">
        <span>your budget summary exists</span>
    </div>
function BudgetSummaryController($scope, $location, BudgetSummary) {
    /* For default view when budgets is clicked */
    $scope.thisMonthBudgetSummary = function () {
        console.log('retrieving budget summary');

        var date = new Date();
        BudgetSummary.get({'month': date.getMonth() + 1, 'year': date.getFullYear()},
            function (data) {
                $scope.budgetSummary = data;

                // success
                console.log('budgetSummary:', data);
            },
            function (error) {
                //error
                console.log('error:', error.status);
            })

        ;
    };

    $scope.budgetSummaryExists = function () {
        return $scope.budgetSummary !== undefined;
    }
问题
-甚至在服务返回数据之前,
budgetSummaryExists()
的计算结果为false,我看不到DOM的其他部分

问题


如何确保函数
budgetSummaryExists()
仅在服务完成后从服务器获取数据时才进行计算?

我的模板出错,这就解决了问题

    <div data-ng-if="! budgetSummaryExists()">
        <span>You have not budget</span>
        <button type="button" class="btn btn-danger"
                data-ng-click="setRoute('budgets')">Create
            Budget
        </button>
    </div>
    <div data-ng-if="budgetSummaryExists()">
        <span>your budget summary exists</span>
    </div>

你没有预算
创造
预算
您的预算摘要已存在