0

我第一次尝试 AngularJS,但我遇到了一个问题。

在调试器中,我看到范围变量“$scope.xml”已正确更新,但显示需要第二次通过(第二次单击)才能刷新。

这是一个 Plunker 来查看我的问题: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

但最好使用 angularjs 提供的服务而不是使用 jquery。

于 2013-04-25T12:07:03.953 回答