通过控制器更改Angularjs ns样式

通过控制器更改Angularjs ns样式,angularjs,controller,ng-style,Angularjs,Controller,Ng Style,我正在尝试更改div的背景色。我的html代码如下: <div ng-style="{'background-color': backgroundImageInfo}"> <input type="file" onchange="angular.element(this).scope().fileThatChangeBackground(this)" /> </div> 控制器的第一行将背景颜色更改为红色。当我将文件设置为输入警报时,显示“红色”,并

我正在尝试更改div的背景色。我的html代码如下:

<div ng-style="{'background-color': backgroundImageInfo}">
    <input type="file" onchange="angular.element(this).scope().fileThatChangeBackground(this)" />
</div>

控制器的第一行将背景颜色更改为红色。当我将文件设置为输入警报时,显示“红色”,并且没有将背景颜色更改为蓝色。当我更改输入文件(消防功能)时,警报显示为“蓝色”,并且再次未更改背景颜色。当我从函数中更改值时,为什么ng style不更改颜色?

既然您正在从外部角度调用更改背景的
文件,您需要执行
$scope.$apply
如果您想让它工作的话。像这样:

angular.module('testApp',[])
.controller('testCtrllr', function($scope){
    $scope.backgroundImageInfo='red';    
    $scope.fileThatChangeBackground = function(scope) {                    
        $scope.$apply(function(){
            $scope.backgroundImageInfo='blue';
        });
    };
});

非常感谢你的支持answer@GoncharDenys没问题,随时都可以!
angular.module('testApp',[])
.controller('testCtrllr', function($scope){
    $scope.backgroundImageInfo='red';    
    $scope.fileThatChangeBackground = function(scope) {                    
        $scope.$apply(function(){
            $scope.backgroundImageInfo='blue';
        });
    };
});