温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Setting dynamic scope variables in AngularJs
angularjs

其他 - 在AngularJs中设置动态范围变量

发布于 2020-03-31 23:50:32

这是我第一次使用AngularJs。ng-style 我在设置表达式时遇到问题,我尝试ng-style通过item.variable_name

    <div class="col-lg-4" ng-repeat="item in MenuModel"
         ng-style="item.variable_name"
         ng-mouseover="onMouseOver(item.color,item.variable_name)" >
        <div class="col-md-12 sub-menu" ng-click="clickmenu(item.id)" >
            <div class="row">
                <div class="col-xs-3 menu-icon" style="background-color:{{item.color}};" >
                    <img class="img-icon" src="~/Resources/{{item.icon}}" />
                </div>
                <div class="col-xs-9" style="display:inline-block">
                    <h3 style="color:{{item.color}};">{{item.menu_name_th}}</h3>
                </div>
            </div>
        </div>
    </div>
</div>

像这样在Anglar.js中添加样式

$scope.onMouseOver = function (color, variable_name) {

   $scope.variable_name = {
      'box-shadow': "0 4px 8px 0 " + color + ", 0 6px 20px 0 rgba(0, 0, 0, 0.19) "
   };

}

我认为设置方法$scope.variable_name是错误的方法您对我有什么建议吗?谢谢

查看更多

提问者
jariya boonchaleaw
被浏览
86
Bill P 2020-01-31 20:09

您不需要更改item.variable_name,而无需更改$scope.variable_name将该项目传递到函数中,然后更改variable_name

$scope.onMouseOver = function (item) {
    item.variable_name = { 'box-shadow': "0 4px 8px 0 " + item.color + ", 0 6px 20px 0 rgba(0, 0, 0, 0.19) " };
}
ng-mouseover="onMouseOver(item)"