Angularjs ng重复不更新视图

Angularjs ng重复不更新视图,angularjs,Angularjs,我的控制器中有这个函数,我正在使用ng repeat更新视图。 问题是,即使我在下面的控制器中使用$scope.$apply(),视图也不会得到更新。我可能遗漏了什么 我已经通过调试验证了这一点 $scope.files = promise.file; 正确获取值,但未更新与$scope.files关联的ng repeat 控制器: $scope.prevDirFiles = function(){ var currDir = fileSvc.getCurrDir();

我的控制器中有这个函数,我正在使用ng repeat更新视图。 问题是,即使我在下面的控制器中使用$scope.$apply(),视图也不会得到更新。我可能遗漏了什么

我已经通过调试验证了这一点

   $scope.files = promise.file; 
正确获取值,但未更新与$scope.files关联的ng repeat

控制器:

  $scope.prevDirFiles = function(){
    var currDir = fileSvc.getCurrDir();
    var arr = currDir.split('/');
    var rebuildDir = config.rootDirectory;
    for(var i=1; i<arr.length-1;i++){
        rebuildDir += '/'+arr[i]
    }
    // Load File based on rebuilt directory path
    fileSvc.setPath(rebuildDir);

    $scope.$apply(fileSvc.getfiles().then(
        function(promise){
            $scope.files = promise.file;
        }
    ));
}
有人能告诉我哪里错了吗

谢谢

HTML

即使在$scope.files上应用$apply之后,第二个函数prevDirFiles也不会更新视图

$scope.prevDirFiles = function(){
    fileSvc.getCurrentWorkingDirectory().then(
        function(response){
            var arr = response.split('/');
            var rebuildDir = config.rootDirectory;
            for(var i=1; i<arr.length-1;i++){
                rebuildDir += '/'+arr[i]
            }
            fileSvc.setPath(rebuildDir);
            fileSvc.getfiles().then(
                function(response){
                    $scope.$apply($scope.files = response.file);
                }
            );
        })

}
$scope.prevDirFiles=function(){
fileSvc.getCurrentWorkingDirectory()。然后(
功能(响应){
var arr=response.split('/');
var rebuildDir=config.rootDirectory;

对于(var i=1;i好吧,我找到了这不起作用的原因。我在应用程序正文外的index.html中有另一个…按钮。它实际上是触发prevDirFiles()函数的按钮,就像ng controller=“FilesCtrl”.而且在路由中,我也像以前一样为页面定义了had controller FilesCtrl。我不确定angularjs中到底出了什么问题(如果有人知道,请解释),当我从标题中删除控制器时,它得到了修复。

请共享使用html代码更新的ng Repeat的html。
Response
data
是您称之为promise的更好名称。
fileSvc.getfiles()
返回一个XHR promise对象,您对variablename promise的使用有误导性。如果函数getFiles在您的服务中,则ng click正在控制器中的$scope上查找函数,它可以访问此函数吗?好的,我会记住这一点并更新我的代码。谢谢!
<ul class="list" ng-repeat="file in files">
    <li class="list-main" ng-click="getFiles('{{file['file-path']}}','{{file['file-name']}}')" >
        <img src="images/cloud.png" class="img">
        <div class="list-info">
            <div class="list-header">{{file['file-name']}}</div>
            <!--<div class="list-info-bottom">Last Modified on 01-Aug-2013 15:38:38</div>-->
        </div>
    </li>
</ul>
$scope.getFiles = function(fpath,fname){
    var path = fpath +'/'+fname;
    fileSvc.setCurrDir(path);
    console.log(path);
    fileSvc.setPath(path);

    fileSvc.getfiles().then(
        function(promise){
            $scope.files = promise.file;
        }
    )

}
$scope.prevDirFiles = function(){
    fileSvc.getCurrentWorkingDirectory().then(
        function(response){
            var arr = response.split('/');
            var rebuildDir = config.rootDirectory;
            for(var i=1; i<arr.length-1;i++){
                rebuildDir += '/'+arr[i]
            }
            fileSvc.setPath(rebuildDir);
            fileSvc.getfiles().then(
                function(response){
                    $scope.$apply($scope.files = response.file);
                }
            );
        })

}