Angular 1.5 组件问题 - 当更改为另一种状态时,如何"重置"来自其控制器的功能?



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: '<'
   }
})

请参阅此处的一个简单示例,您可以从页面控制器中更改组件的类。

相关内容

  • 没有找到相关文章

最新更新