我想知道當我訪問angularjs中的視圖時,是否可以隱藏index.html文件中的某些部分。如何在角度ng視圖中隱藏index.html頁面的某些內容?
我的index.html文件包含所有視圖的底部菜單欄,我創建了一個home.html視圖,我不想包含該菜單欄。這是可能的角?
謝謝!
我想知道當我訪問angularjs中的視圖時,是否可以隱藏index.html文件中的某些部分。如何在角度ng視圖中隱藏index.html頁面的某些內容?
我的index.html文件包含所有視圖的底部菜單欄,我創建了一個home.html視圖,我不想包含該菜單欄。這是可能的角?
謝謝!
是的,你可以做到這一點
比如你有你的底欄爲
<div>This is bottom bar<div>
現在它改成
<div ng-hide="hideit">This is bottom bar<div>
現在Home.html中的控制器只寫$rootScope.hideit = true;
任何你想在應用程序中保留底欄可見只是做$rootScope.hideit = false;
減$ rootScope
與$ rootScope的問題是,你將添加依賴關係你的代碼。 maddygoround的答案很好,但是你的index.html,home.html和控制器都會很難連接,而且變化會有點難。
爲了擺脫$ rootScope的,我會做以下修改:
<div ng-hide="hideit">This is bottom bar<div>
這是maddygoround貼出相同的代碼,它做它應該做的。現在,您不會訪問home.html控制器並更改hideit,而是會爲路由的更改添加偵聽器。
下面的代碼可以添加到您的angular.module()聲明所在的文件中。
app.run(function($rootScope, $location){
$rootScope.$on('$routeChangeStart', function(event, next, current){
if ($location.path() == '/home') {
$rootScope.hideit = true;
};
});
});
這將使您的index.html獨立於home.html控制器中發生的事情。這是更多的代碼,但可以在將來拯救你的生命。我試圖擺脫$ rootScope,如果可以的話,我會更新我的答案沒有$ rootScope。
謝謝你的解釋! –
控制器會是這樣嗎? '.controller('homeCtrl',function($ scope){ $ rootScope.hideit = true; })' –
是的,它可以只做一個更改通過$ rootScope函數 例如使用函數($ scope,$ rootScope),你的底部欄必須包裝在ng-app – maddygoround
尼斯。這使底部菜單欄脫離主頁。儘管如此,它現在已經消失了。我會在哪裏放置'$ rootScope.hideit = false;'?在app.js上? –