在 AngularJS 应用程序中访问 Zurb Foundation for Apps 模块
Access to Zurb Foundation for Apps modules in AngularJS App
我正在使用 Foundation for Apps 开发 AngularJS 应用程序。在我的布局中,我在顶部菜单中使用了 Foundation Apps 面板
<div zf-panel="" id="topMenu" position="top" class="panel-fixed">...</div>
我想在我的 AngularJS 应用程序中清楚地访问面板的状态。我浏览了文档 here,我能做的最好的事情就是在我的 [=27] 中状态发生变化("toggle"、"open" 或 "close" 时收到警报=]:
.run([
'$rootScope',
'FoundationApi',
function ($rootScope, FoundationApi) {
FoundationApi.subscribe('topMenu', function(event) {
console.log(event);
})
}
]);
在 Ng-Inspector 中,我可以在 $rootScope 下看到 Panel 模块 (zfPanel),其中有一个名为 "active" 的布尔值 属性,但到目前为止我可以访问它的唯一方法是这个:
$rootScope.menuClosed = true;
FoundationApi.subscribe('topMenu', function(event) {
$rootScope.menuClosed = angular.element('#topMenu').isolateScope().active;
})
我想在应用程序的其他部分连接到 Foundation Apps 模块,有更简洁的方法吗?
最终,我找到了一种干净的方法来使用 Foundation API 事件,而无需在 DOM 元素上调用 isolateScope:
FoundationApi.subscribe('topMenu', function(event) {
if (event === 'close') {
$rootScope.menuClosed = true;
} else if (event === 'open') {
$rootScope.menuClosed = false;
} else {
// event === 'toggle'
$rootScope.menuClosed = !$rootScope.menuClosed;
};
})
我正在使用 Foundation for Apps 开发 AngularJS 应用程序。在我的布局中,我在顶部菜单中使用了 Foundation Apps 面板
<div zf-panel="" id="topMenu" position="top" class="panel-fixed">...</div>
我想在我的 AngularJS 应用程序中清楚地访问面板的状态。我浏览了文档 here,我能做的最好的事情就是在我的 [=27] 中状态发生变化("toggle"、"open" 或 "close" 时收到警报=]:
.run([
'$rootScope',
'FoundationApi',
function ($rootScope, FoundationApi) {
FoundationApi.subscribe('topMenu', function(event) {
console.log(event);
})
}
]);
在 Ng-Inspector 中,我可以在 $rootScope 下看到 Panel 模块 (zfPanel),其中有一个名为 "active" 的布尔值 属性,但到目前为止我可以访问它的唯一方法是这个:
$rootScope.menuClosed = true;
FoundationApi.subscribe('topMenu', function(event) {
$rootScope.menuClosed = angular.element('#topMenu').isolateScope().active;
})
我想在应用程序的其他部分连接到 Foundation Apps 模块,有更简洁的方法吗?
最终,我找到了一种干净的方法来使用 Foundation API 事件,而无需在 DOM 元素上调用 isolateScope:
FoundationApi.subscribe('topMenu', function(event) {
if (event === 'close') {
$rootScope.menuClosed = true;
} else if (event === 'open') {
$rootScope.menuClosed = false;
} else {
// event === 'toggle'
$rootScope.menuClosed = !$rootScope.menuClosed;
};
})