簡體   English   中英

無法更改 AngularJS 上的 scope 變量值

[英]Can't change scope variables value on AngularJS

我想編輯 scope 變量值,但我無法得到它。 奇怪的是,如果我使用 console.log($scope) 而不是 $scope.subtotal 進行調試,那么我還可以通過 ng-inspector Google 擴展獲得所有值。

十分感謝!

 angular.module('myApp', []).controller('CartController', ['$scope', '$http', function ($scope, $http) { function getSubtotalCart(){ $.getJSON('/getSubtotalCart', function (response, status, xhr) { if (status == 'success') { $scope.subtotal = "Hello"; //response; $scope.$apply(); } else { console.log(xhr); } }); } $scope.getTotalCart = function(bool){ console.log('Running'); (bool) && getSubtotalCart(); console.log($scope); console.log($scope.subtotal); }; }]);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="container" ng-app="myApp" ng-controller="CartController" ng-init="getTotalCart(true)" ng-cloak></div>

您在ng-init中調用$scope.getTotalCart 這使它成為它一被調用就會做的第一件事。 事實上,它發生得如此之快,以至於/getSubcartTotal甚至還沒有返回一個值。 這意味着$scope.subtotal仍然未定義。 要解決這個問題,你當然可以給它一個初始值,或者你可以通過將它放在響應回調中來延遲對getTotalCart的調用,或者,如果你正在使用uiRouter ,你應該能夠使用“resolve”來只請求完成加載 controller。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM