angularjs http只能工作一次

时间:2014-06-03 17:49:08

标签: javascript jquery ajax json angularjs

我在论坛上看到了一些类似的帖子,但没有发现我的问题。也许是因为我对js / angular和那些东西都是新手。事情就是这样:

完美图片: 我点击服务器上的按钮数据(一些文本/数字)进行更新和显示。

我的问题是 - 我只获取一次数据。后来调用jquery.js中的一些其他函数而不是我的函数。

        if ( !(eventHandle = elemData.handle) ) {
        eventHandle = elemData.handle = function( e ) {
            // Discard the second event of a jQuery.event.trigger() and
            // when an event is called after a page has unloaded
            return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?
                jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
                undefined;
        };

我的代码:

controllers.js:

    myApp.controller('ajaxController', function($scope, $http, $log){

        $scope.ajaxData={};
        $scope.ajaxData.doClick = function(item, event){

            $http({method: 'GET', url: 'temp/temp.json', params: { 'foobar': new Date().getTime() } }).
                success(function(data, status, headers, config) {
                    $log.debug(data);
                    $scope.ajaxData = data;
                }).
                error(function(data, status, headers, config) {
                    $log.debug("not good");
                });

的index.html:

<div class="container" ng-controller="ajaxController"> (...)

<button ng-click="ajaxData.doClick(item, $event)">Send Request</button>
percentage: {{$scope.ajaxData.data.cpu}}</br>
usage: {{$scope.ajaxData.total}}</br>
idle: {{$scope.ajaxData.idle}}</br>

我可以在chrome控制台中看到第一个请求已经完成并且成功,之后提到的上面的代码被执行而我没有数据。

1 个答案:

答案 0 :(得分:3)

在您的成功功能中,您将使用您的回复覆盖ajaxData

$scope.ajaxData = data

这意味着$scope.ajaxData.doClick不再存在。尝试将doClick仅绑定到$ scope。