angularJSのコールバック内から$ scopeを更新します
このコントローラーがあり、関数コールバック内から_$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
_
上記のスクリプトに$apply
関数が表示されず、progressupdateも表示されません。設定後に$apply
を試すか、$apply
内に設定します。
showOk.on('listening', function(){
$scope.$apply(function(){
$scope.progress = progressupdate;
});
});
または
showOk.on('listening', function(){
$scope.progress = progressupdate;
$scope.$apply();
});
最初の方法をお勧めします。