1

我有一个列表,你可以下拉刷新。此事件在处理可拉列表检测的指令内触发,元素如下所示。

<div class="pull-to-refresh" pulldown="update()">
    //The list goes here
</div>

因此,在指令中,我检测到下拉运动(使用 iscroll),并在释放时调用该函数:

function pullDownAction(){
    scope.$eval(attr.pulldown);
}

控制器中的 update() 函数如下所示:

$scope.update = function () {
    $http.get('/myurl/')
        .success(function(data){
            $scope.model = data;
        });
};

由于从角度 1.1.1 更新到 1.1.4,不再发出请求。该函数被调用,但未发出请求。但是,我可以直接从视图中调用 update() 函数,它可以正常工作,如下所示:

<button ng-click="update()">Click to update</button>

但是,当从指令调用时,它会进入函数,但不会发出请求。我查看了更改日志,但没有发现任何会导致这种行为的东西,并且它在 angular 1.1.1 中运行良好。有没有人知道问题可能是什么?

4

1 回答 1

4

1.1.4 目前需要做$http.getin $scope.$apply(不知道这是一个 bug)。因为ng-click$scope.apply你有用,在你的指令中你必须手动执行此操作。AFAIK scope.$eval 不会触发 $digest,所以请尝试$scope.$apply(attrs.pulldown)

于 2013-04-26T22:28:09.750 回答