在跨度元素中使用AngularJS ng类

在跨度元素中使用AngularJS ng类,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个仪表板风格的小部件容器,其中包含一个标题面板。 标题面板中有几个图标,它们实现了以下功能: 1) 折叠小部件 2) 最大化小部件 3) 启动小部件设置 4) 关闭小部件 第2项是我遇到麻烦的地方。我需要在单击时用还原图标替换最大化图标 使用折叠行为作为指导,我可以使用ng class切换图标,但是我的ng click会有所不同,因为我在指令中调用了一个方法 {{widget.title} {{widget.name} 我构建了一个简单的解决方案来处理相同的UI功能,即根据状态切换图标

我有一个仪表板风格的小部件容器,其中包含一个标题面板。 标题面板中有几个图标,它们实现了以下功能:

1) 折叠小部件 2) 最大化小部件 3) 启动小部件设置 4) 关闭小部件

第2项是我遇到麻烦的地方。我需要在单击时用还原图标替换最大化图标

使用折叠行为作为指导,我可以使用
ng class
切换图标,但是我的
ng click
会有所不同,因为我在指令中调用了一个方法


{{widget.title}
{{widget.name}

我构建了一个简单的解决方案来处理相同的UI功能,即根据状态切换图标。我没有使用任何javascript来处理实际的大小调整,我使用CSS类来改变定位样式

关于$parent部分,我必须使用它来引用控制器范围,因为我的检查使用了ng hide和ng if,这会创建$scopes,使用$parent可以确保我引用的是控制器$scope变量

例如,在您的情况下,
ng click=“maxResizer($event);$parent.ifFullscreen”
可以使现有代码和类切换逻辑一起工作

<a ng-click="$parent.isFullscreen = !$parent.isFullscreen;">
    <i class="glyphicon"
        ng-class="'glyphicon-resize-' + ($parent.fullscreenTable ? 'small' : 'full')"
        tooltip="{{$parent.fullscreenTable ?  'restore' :'fullscreen'}}"
        tooltip-placement="{{$parent.fullscreenTable ? 'left' : 'top'}}"></i>
</a>

这是我真正改的唯一一行

<span title="maximize" ng-show="widget.gadgetConfigured" ng-click="maxResizer($event); widget.contentStyle.maximized = !widget.contentStyle.maximized" class="glyphicon" ng-class="'glyphicon-resize-' + (widget.contentStyle.maximized ? 'small' : 'full')" ></span>

我构建了一个简单的解决方案来处理相同的UI功能,即根据状态切换图标。我没有使用任何javascript来处理实际的大小调整,我使用CSS类来改变定位样式

关于$parent部分,我必须使用它来引用控制器范围,因为我的检查使用了ng hide和ng if,这会创建$scopes,使用$parent可以确保我引用的是控制器$scope变量

例如,在您的情况下,
ng click=“maxResizer($event);$parent.ifFullscreen”
可以使现有代码和类切换逻辑一起工作

<a ng-click="$parent.isFullscreen = !$parent.isFullscreen;">
    <i class="glyphicon"
        ng-class="'glyphicon-resize-' + ($parent.fullscreenTable ? 'small' : 'full')"
        tooltip="{{$parent.fullscreenTable ?  'restore' :'fullscreen'}}"
        tooltip-placement="{{$parent.fullscreenTable ? 'left' : 'top'}}"></i>
</a>

这是我真正改的唯一一行

<span title="maximize" ng-show="widget.gadgetConfigured" ng-click="maxResizer($event); widget.contentStyle.maximized = !widget.contentStyle.maximized" class="glyphicon" ng-class="'glyphicon-resize-' + (widget.contentStyle.maximized ? 'small' : 'full')" ></span>

我构建了一个简单的解决方案来处理相同的UI功能,即根据状态切换图标。我没有使用任何javascript来处理实际的大小调整,我使用CSS类来改变定位样式

关于$parent部分,我必须使用它来引用控制器范围,因为我的检查使用了ng hide和ng if,这会创建$scopes,使用$parent可以确保我引用的是控制器$scope变量

例如,在您的情况下,
ng click=“maxResizer($event);$parent.ifFullscreen”
可以使现有代码和类切换逻辑一起工作

<a ng-click="$parent.isFullscreen = !$parent.isFullscreen;">
    <i class="glyphicon"
        ng-class="'glyphicon-resize-' + ($parent.fullscreenTable ? 'small' : 'full')"
        tooltip="{{$parent.fullscreenTable ?  'restore' :'fullscreen'}}"
        tooltip-placement="{{$parent.fullscreenTable ? 'left' : 'top'}}"></i>
</a>

这是我真正改的唯一一行

<span title="maximize" ng-show="widget.gadgetConfigured" ng-click="maxResizer($event); widget.contentStyle.maximized = !widget.contentStyle.maximized" class="glyphicon" ng-class="'glyphicon-resize-' + (widget.contentStyle.maximized ? 'small' : 'full')" ></span>

我构建了一个简单的解决方案来处理相同的UI功能,即根据状态切换图标。我没有使用任何javascript来处理实际的大小调整,我使用CSS类来改变定位样式

关于$parent部分,我必须使用它来引用控制器范围,因为我的检查使用了ng hide和ng if,这会创建$scopes,使用$parent可以确保我引用的是控制器$scope变量

例如,在您的情况下,
ng click=“maxResizer($event);$parent.ifFullscreen”
可以使现有代码和类切换逻辑一起工作

<a ng-click="$parent.isFullscreen = !$parent.isFullscreen;">
    <i class="glyphicon"
        ng-class="'glyphicon-resize-' + ($parent.fullscreenTable ? 'small' : 'full')"
        tooltip="{{$parent.fullscreenTable ?  'restore' :'fullscreen'}}"
        tooltip-placement="{{$parent.fullscreenTable ? 'left' : 'top'}}"></i>
</a>

这是我真正改的唯一一行

<span title="maximize" ng-show="widget.gadgetConfigured" ng-click="maxResizer($event); widget.contentStyle.maximized = !widget.contentStyle.maximized" class="glyphicon" ng-class="'glyphicon-resize-' + (widget.contentStyle.maximized ? 'small' : 'full')" ></span>


在哪里设置小部件.contentStyle.maximized
?如果这是一个布尔值,您无法将其与字符串形式的“
”true“
和“
false”匹配,只需删除这些双引号。或者更好,通过truthy/falthy检查来更改您的
ng类:
ng class=“{'glyphicon-resize-full':!widget.contentStyle.maximized,'glyphicon plus':widget.contentStyle.maximized}”
像往常一样,我只是个白痴。它不是
widget.contentStyle.maximized
。这只是
小部件。最大化了
@floribon-你的真实陈述对你来说更有意义。这不是最终的答案,但非常有用。我的问题真的很严重。再次感谢您的指导,因为当我得到您的意见时,它总是有帮助的。您在哪里设置
widget.contentStyle.maximized
?如果这是一个布尔值,您无法将其与字符串形式的“
”true“
和“
false”匹配,只需删除这些双引号。或者更好,通过truthy/falthy检查来更改您的
ng类:
ng class=“{'glyphicon-resize-full':!widget.contentStyle.maximized,'glyphicon plus':widget.contentStyle.maximized}”
像往常一样,我只是个白痴。它不是
widget.contentStyle.maximized
。这只是
小部件。最大化了
@floribon-你的真实陈述对你来说更有意义。这不是最终的答案,但非常有用。我的问题真的很严重。再次感谢您的指导,因为当我得到您的意见时,它总是有帮助的。您在哪里设置
widget.contentStyle.maximized
?如果这是一个布尔值,您无法将其与字符串形式的“
”true“
和“
false”匹配,只需删除这些双引号。或者更好,通过truthy/falthy检查来更改您的
ng类:
ng class=“{'glyphicon-resize-full':!widget.contentStyle.maximized,'glyphicon plus':widget.contentStyle.maximized}”
像往常一样,我只是个白痴。它不是
widget.contentStyle.maximized
。这只是
小部件。最大化了
@floribon-你的真实陈述对你来说更有意义。这不是最终的答案,但非常有用。我的问题真的很严重。再次感谢您的指导,因为当我得到您的意见时,它总是有帮助的。您在哪里设置
widget.contentStyle.maximized
?如果这是一个布尔值,您无法将其与字符串形式的“
”true“
和“
false”匹配,只需删除这些双引号。或者更好的办法是改变