javascript - 从另一个模块隐藏元素

标签 javascript angularjs

我从事 angularjs 单页应用程序项目

我的 angularjs 项目中有两个模块 module-'A'module-'B'。每个模块都有 View 模板。 Module-'B' 模板的 View 有 id ="siteDataView" 的 div,我需要将此 div 隐藏在 module-'A' 之外名为 hideMenu() 的 Controller 函数。

我尝试这样:

(function () {
"use strict";

  angular.module("module-A").controller("module-A-Controller", ["$state", module-A-Controller]);

  function module-A-Controller() {
    var self = this;

    this.hideMenu = function () {
       var elem = document.getElementById("siteDataView");
       elem.hide();
    }
    self.hideMenu();
  }
})();

但问题是 elem 变量始终为 null。

知道我错过了什么吗?为什么我无法使用 id=siteDataView 访问该元素?

最佳答案

您正在 Controller 内调用 hideMenu 函数,该函数不起作用。因为模块和 Controller 函数是在创建 DOM 之前启动的,所以在此调用过程中 elem 将为 null。最好在 DOM 中的 ng-init 指令中调用此方法。

关于javascript - 从另一个模块隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699052/

相关文章:

javascript - 如何在jquery mobile中启用垂直滚动

javascript - 在 OrientDB 中嵌入函数中的记录

javascript - Safari 中的默认函数参数值不起作用

angularjs - Firebase 拥有数千个 on() 事件监听器,设计良好

javascript - 使用 ng-include 时失去作用域

javascript - 如果之前没有另一个字符,如何查找字符

javascript - React-select 可创建 - 只允许一个创建的选项

javascript - Asp.Net 中控件的验证提示

javascript - 使用 javascript 在 Json 中寻址 String 变量

html - 实现页脚底部