javascript - viewContentLoaded - 无需为每个 Controller 重复代码 - AngularJS

标签 javascript angularjs

嘿,我正在尝试感受 Angular ,但遇到了一些小障碍。

我有一个如下所示的容器结构:

<div class="main-container" ng-view>
    <!-- The below divs are constantly being 
         reloaded based on the current URL and it's associated view -->
    <div class="left-col">
    </div>
    <div class="right-col">
    </div>
</div>

在实现 Angular 之前,我只有一个简单的脚本来检查窗口的高度并相应地设置左列和右列 div 的高度。

对于 Angular,可能有更好的方法来做到这一点,然后将事件函数附加到窗口对象。基本上我想在每次渲染新 View 时触发一个函数,但不要在我的所有 Angular Controller 中重复以下代码,如下所示:

$scope.$on('$viewContentLoaded', setColumnHeight);

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

我通过在 DOM 树顶部设置根“应用程序 Controller ”解决了我的应用程序中的这个问题。例如:

<body ng-controller='applicationController'>
...
<div class="ng-view"></div>
...
</body>

applicationController 始终存在,并且可以在创建时在其范围上设置绑定(bind)。

关于javascript - viewContentLoaded - 无需为每个 Controller 重复代码 - AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14248177/

相关文章:

javascript - 具有 0.01 个步骤的数字输入为 angularjs 中的某些值提供未定义

javascript - 当安装在 Enzyme 中时,为什么带有 ResponsiveContainer 的 ReCharts 图表不渲染图表的子元素?

javascript - 将 Cache-Control 和 Expires header 添加到 Azure Blob 存储 Node JS

javascript - 对其他函数隐藏静态变量

javascript - 自定义指令中的 AngularJS ng-model

javascript - 将模型绑定(bind)到文本框后调用事件 - Angular

javascript - Angular JS 待办事项列表未显示

javascript - 使用 Freemarker 模板在 Angular 中转义引号

javascript - 单击表格中的 tr 时使用 JQuery 创建弹出窗口

javascript - JS-toFixed 返回一个字符串,但我需要一个 6 位数字