0

初めて AngularJS を試しましたが、問題が発生しました。

デバッガーでは、スコープ変数 '$scope.xml' が正しく更新されていることがわかりますが、表示を更新するには 2 回目のパス (2 回目のクリック) が必要です。

ここに私の問題を見るためのプランカーがあります: http://plnkr.co/edit/9PJsGeDqwjC6nmZHcEJV

ドキュメントを調べていますが、何がうまくいかなかったかを理解するためのトラックが見つかりません

助けてくれてありがとう!

<!doctype html>
<html ng-app="testAngularJS">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>
</head>
<body>
<div ng-controller="testXML">
<div>XML<br/><textarea cols="60" rows="15" ng-model="xml" name="xml">{{xml}}</textarea></div>

<div><button ng-click="listTypDoc()">List !</button><br/>

<br/><button ng-click="clearXML()">Clear</button></div>
</div>

<script type="text/javascript">

var app = angular.module('testAngularJS', []);

 app.controller('testXML', function($scope){

  $scope.url = 'listeTypDoc.txt';

    $scope.listTypDoc = function() {

        $.ajax({
                type:"GET",
                url: $scope.url,
                xhrFields: {
                   withCredentials: false
                },
                crossDomain: false
            }).done(function ( data ) {
               $scope.xml = data;
               debugger;
          });

        };

        $scope.clearXML = function() {
        $scope.xml = ''; 
        };

    })  
</script>
</body>
</html>
4

1 に答える 1

1

angularjs の外部でリクエストを使用しているため、データを $scope.xml に設定した後に $apply() を呼び出す必要があります。apply メソッドを見てみましょう。

http://docs.angularjs.org/api/ng.$ro​​otScope.Scope

ただし、jquery を使用する代わりに、angularjs が提供するサービスを使用することをお勧めします。

于 2013-04-25T12:07:03.953 に答える