i有一个带有控制器的角1.5组件(使用控制器语法),如果在页面中存在某个html元素,我编写了一个函数,将其他CSS类添加到组件元素。如果该某些HTML元素不存在,则该组件不应用此额外的CSS类。它在我要寻找的HTML元素的页面中起作用。但是,当切换到另一个状态时,无论在该状态上不存在HTML元素,组件都可以保持附加的CSS类。您必须刷新应用程序才能"重置"来自组件控制器的功能。该组件在应用程序中的每个页面上使用。
例如,这是我的组成部分:
function myComponentController() {
activate();
function activate(){
addAdditionalCssClass();
}
function addAdditionalCssClass(){
// code for adding additional css class to the component
// if html element exists
}
}
当我们处于此HTML元素存在的状态时,它可以正常工作。但是,当我们进入另一个状态时,混凝土HTML元素为null
时,函数addAdditionalCssClass()
连续将其他类添加到组件中。任何帮助/建议将不胜感激。
据我了解,您有一个带有动态HTML的页面和此页面中的一个组件,该页面应反映当前状态,并具有更改的类别。
一种解决方案是使组的组件取决于类的列表,即在其 bindings
a classes
属性中,例如
.component('classSpecial', {
template: "<div ng-class='$ctrl.classes'>Hello</span></div>",
bindings: {
classes: '<'
}
})
请参阅此处的一个简单示例,您可以从页面控制器中更改组件的类。