13

ここ$scopeで受け入れられた回答ごとに変数にアクセスできます。ただし、コンソールから編集することはできません。つまり、プロパティの変更、関数の呼び出しなどです。これは可能ですか?

これが私が実験してきたテストコードです:

<!doctype html>
<html data-ng-app="Foo">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
    <script type="text/javascript">
      var app = angular.module("Foo", []);
      app.controller("One", ["$scope", function($scope) {
        $scope.text = "hello";
      }]);
    </script>
  </head>
  <body>
    <div id="container" ng-controller="One">
      {{ text }}
    </div><!-- #container -->
  </body>
</html>

コンソールを使用してプロパティを編集するtextと、変更されますが、ビューは変更されません。

> angular.element($("#container")).scope().text
< "hello"
> angular.element($("#container")).scope().text = 'bye'
< "bye"

$scopeビューとすべての依存関係も更新されるように、コンソールから値とプロパティを変更するにはどうすればよいですか?

4

1 に答える 1

14

外部の角度コンテキストから更新されたスコープ変数はバインディングを更新しません。メソッドを呼び出してスコープの値を更新した後、ダイジェスト サイクルを実行する必要があり、すべてのバインディングが HTML で更新されます。scope.$apply()$digest

 angular.element($("#container")).scope().text
 angular.element($("#container")).scope().$apply()

注:- 機能させるには、jQuery ファイルを追加する必要があります。

于 2015-06-09T15:41:35.577 に答える