2014-03-31 15 views
22

我有這個控制器,我想從函數回調中更新$scope.progress。我嘗試使用$rootScope$scope.apply(),但我無法使它工作。 有什麼我失蹤了嗎?

progressupdate是事件返回的變量。代碼不完全像這樣。我在這裏顯示結構非常簡單。

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

    var show = function(url) { 
     function(err, showOK) { 
      if (err) { 
       console.log(err); 
      } else { 
       showOK.on('listening', function(){ 
        $scope.progress = progressupdate; 
       }); 
      } 
     }); 
    } 

    show(url); 

}); 

我是否在控制器內錯誤地運行該功能? 我應該使用類似的東西嗎?

$scope.show = function(url)...etc 
+0

您的示例在語法上不正確。不知道這是否是錯誤的複製/粘貼或實際問題。 – SomeKittens

+0

哎呀,一些壞的副本。 – fmtoffolo

回答

33

我沒有在上面的腳本和progressupdate上看到$apply函數。嘗試$apply集後,或將其設置裏面$apply:建議

showOk.on('listening', function(){ 
    $scope.$apply(function(){ 
     $scope.progress = progressupdate; 
    }); 
}); 

showOk.on('listening', function(){ 
    $scope.progress = progressupdate; 
    $scope.$apply(); 
}); 

第一種方法。

+1

我想我被燒死了,因爲我嘗試了你以前的建議,並且無法啓動它!謝謝! – fmtoffolo