Googleのドキュメントに従った後、コールバック関数から$ scopeにアクセスできません

それはあなたのアプリLLCです

クラウドエンドポイントでAngularJSをブートストラップするためGoogleドキュメント(下にスクロール)に従いました私のコードは次のようになります:

index.html

<!DOCTYPE html>
<html ng-app="AnimalsApp">
<head>
<meta charset="UTF-8">
<title>Animal Manager Server</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.28/angular.min.js"></script>
<script src="js/animal.js"></script>
<script src="https://apis.google.com/js/client.js?onload=init"></script>
</head>
<body>
  <div ng-controller="MainCtrl" class="container">
    {{message}} world
  </div>
</body>
</html>

animal.js

angular.module('AnimalsApp', [])
  .controller('MainCtrl', ['$scope', '$window', function($scope, $window) {
    $scope.message = 'Hello';  
    $window.init = function() {
      $scope.$apply($scope.load_guestbook_lib);
    };
    $scope.load_guestbook_lib = function() {
      gapi.client.load('creatureCloud', 'v1', function() {
        $scope.is_backend_ready = true;
        $scope.message = 'Hello beautiful';  
        console.log('Made it!');
      }, 'http://localhost:8888/_ah/api');
    };
  }]);

function init() {
  window.init();
}

テキストMade it!はコンソールログに表示され、コールバックが実行されたことを示します。ただし、設定し$scope.is_backend_ready = trueても表示には影響しません<div id="listResult" ng-controller="MainCtrl" class="container">これにより$scope、コールバック内のオブジェクトが正しく機能していないと思われます。

私は何を間違えましたか?Googleドキュメントは間違っていますか?

PSL

あなたの使用意図$scope.$apply()は正しいですが、それは間違った場所にあります。あなたはそれからではなくコールバックでそれをする必要があります。あなたが持っている方法で、あなたは関数load_guestbook_lib実行し、次にダイジェストサイクルを実行しています。gapi.client.load関数は非同期であるため、後で実行され、角度のあるコンテキスト外で発生するため、ダイジェストは発生しません。

試してみてください:

$window.init = function() {
  $scope.load_guestbook_lib(); //Just invoke the function
};
$scope.load_guestbook_lib = function() {
  gapi.client.load('creatureCloud', 'v1', function() {
    $scope.is_backend_ready = true;
    $scope.message = 'Hello cats';  
    console.log('Made it!');
    $scope.$apply(); //<-- Apply here
  }, 'http://localhost:8888/_ah/api');
};

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AngularJSのコントローラー関数内から$ scope変数にアクセスできません

分類Dev

AngularJSの$ http成功コールバックの外部では$ scope変数値にアクセスできません

分類Dev

「コールバック」関数でV8コンテキストにアクセスできません

分類Dev

関数外ではAngularJS $ scopeにアクセスできません

分類Dev

Iframeから親ドキュメントにアクセスできません

分類Dev

$ location.pathでビューを変更した後、$ scope変数にアクセスできません

分類Dev

typescriptを使用したangularjs- $ scopeにアクセスできません

分類Dev

ドキュメントルートからhtmlファイルにアクセスできません

分類Dev

$ scopeはpromise内でアクセスできません。

分類Dev

angle-modal-serviceを使用して$ scope値にアクセスできません

分類Dev

ネストされた関数では$ scopeにアクセスできません

分類Dev

AngularのJQueryon()メソッドからグローバル変数にアクセスできません

分類Dev

AWS Lambda:VPCアクセスでLambda関数からSQSキューにアクセスできません

分類Dev

ハンドルバースコープの問題:埋め込まれた `each`からテンプレート変数にアクセスできません

分類Dev

関数内でコントロールにアクセスできません

分類Dev

子UIから親コントローラーのメソッドにアクセスできません

分類Dev

ドメインコンピュータからルーターにアクセスできません

分類Dev

関数から変数にアクセスできません

分類Dev

ビューのクエリセットに値を追加した後、モデルのカスタム関数にアクセスできません

分類Dev

関数から配列にアクセスできません

分類Dev

ドット表記swiftを使用して関数メンバーにアクセスできません

分類Dev

AngularFireStoreにアップロードした後、getDownloadUrl()内から変数にアクセスできません

分類Dev

バックスタックからフラグメントをクリアした後、フラグメントにアクセスできません

分類Dev

C ++ではメンバー関数にアクセスできません

分類Dev

Mongooseドキュメントから一部のプロパティにアクセスできません

分類Dev

Webmin インターフェイスを使用していくつかのセキュリティ更新を行った後、Ubuntu 16.04 AWS EC2 サーバーからインターネットにアクセスできません

分類Dev

コンポーネントからグローバルSASS変数にアクセスできません

分類Dev

Reactコンポーネント内の関数から小道具にアクセスできません

分類Dev

jsonからキー値にアクセスできません

Related 関連記事

  1. 1

    AngularJSのコントローラー関数内から$ scope変数にアクセスできません

  2. 2

    AngularJSの$ http成功コールバックの外部では$ scope変数値にアクセスできません

  3. 3

    「コールバック」関数でV8コンテキストにアクセスできません

  4. 4

    関数外ではAngularJS $ scopeにアクセスできません

  5. 5

    Iframeから親ドキュメントにアクセスできません

  6. 6

    $ location.pathでビューを変更した後、$ scope変数にアクセスできません

  7. 7

    typescriptを使用したangularjs- $ scopeにアクセスできません

  8. 8

    ドキュメントルートからhtmlファイルにアクセスできません

  9. 9

    $ scopeはpromise内でアクセスできません。

  10. 10

    angle-modal-serviceを使用して$ scope値にアクセスできません

  11. 11

    ネストされた関数では$ scopeにアクセスできません

  12. 12

    AngularのJQueryon()メソッドからグローバル変数にアクセスできません

  13. 13

    AWS Lambda:VPCアクセスでLambda関数からSQSキューにアクセスできません

  14. 14

    ハンドルバースコープの問題:埋め込まれた `each`からテンプレート変数にアクセスできません

  15. 15

    関数内でコントロールにアクセスできません

  16. 16

    子UIから親コントローラーのメソッドにアクセスできません

  17. 17

    ドメインコンピュータからルーターにアクセスできません

  18. 18

    関数から変数にアクセスできません

  19. 19

    ビューのクエリセットに値を追加した後、モデルのカスタム関数にアクセスできません

  20. 20

    関数から配列にアクセスできません

  21. 21

    ドット表記swiftを使用して関数メンバーにアクセスできません

  22. 22

    AngularFireStoreにアップロードした後、getDownloadUrl()内から変数にアクセスできません

  23. 23

    バックスタックからフラグメントをクリアした後、フラグメントにアクセスできません

  24. 24

    C ++ではメンバー関数にアクセスできません

  25. 25

    Mongooseドキュメントから一部のプロパティにアクセスできません

  26. 26

    Webmin インターフェイスを使用していくつかのセキュリティ更新を行った後、Ubuntu 16.04 AWS EC2 サーバーからインターネットにアクセスできません

  27. 27

    コンポーネントからグローバルSASS変数にアクセスできません

  28. 28

    Reactコンポーネント内の関数から小道具にアクセスできません

  29. 29

    jsonからキー値にアクセスできません

ホットタグ

アーカイブ