亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

angularjs中的隨頁面變化的導航

angularjs中的隨頁面變化的導航

牧羊人nacy 2018-09-07 14:09:16
項目現在用的是angular(1.x)。自己寫了一個導航指令,但是導航在路由邏輯之外在ng-view外面,現在想讓導航條隨著頁面url的變化,有一個指示(就是表示在當行的哪一個欄目)。我在推薦就推薦變灰,我在視頻就視頻變灰我的辦法是每一個控制器的最前面寫一個 scope.selectNav變成對應的數字(例如在視頻selectNav為3),然后在導航指令中用ng-class控制,可是由于指令寫在控制器之外,每次路由切換指令不會重載,有沒有什么辦法可以讓selectNav一改變,導航指令的樣式就跟著改變
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

看看這是不是你要的:

nav.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Nav</title>
    <link rel="stylesheet" href="css/nav.css"></head><body ng-app="navApp" ng-controller="navCtrl">
    <div class="container">
        <nav-bar></nav-bar>
        <div ui-view class="content"></div>
    </div></body><script src="angular/angular.js"></script><script src="angular-ui-router/release/angular-ui-router.js">
    </script><script src="js/nav.js"></script></html

tab.html

<ul class="nav clearfix">

    <li ng-repeat="tab in tabs"><a ui-sref="{{tab|lowercase}}" ui-sref-active="active">{{tab}}</a></li>

</ul>

nav.js

angular.module('navApp',['ui.router'])

    .config(function($stateProvider,$urlRouterProvider){

        $urlRouterProvider.otherwise('/home');

        $stateProvider

            .state('home',{

                url: '/home',

                template: '<div>Welcome to home page!</div>'

            })

            .state('recommend',{

                url: '/recommend',

                template: '<div>recommend</div>'

            })

            .state('videos',{

                url: '/videos',

                template: '<div>videos</div>'

            })

            .state('shopping',{

                url: '/shopping',

                template: '<div>shopping</div>'

            })

    })

    .directive('navBar', function(){

        return {

            restrict: 'EA',

            scope:{},

            templateUrl: '../views/tab.html',

            controller: function($scope){

                $scope.tabs = ['Home','Recommend','Videos','Shopping'];

            }

        }

    })

    .controller('navCtrl', function($scope){


    })

app.js

var express = require('express');

var bodyParser = require('body-parser');


var app = express();


app.use(bodyParser.json());

app.use(bodyParser.urlencoded({

    extended: true

}));

app.use(express.static('./public'));

app.use(express.static('./node_modules'));


var PORT = process.env.PORT || 8000;


app.listen(PORT, ()=>{

    console.log('server running on port: ' + PORT);

});

app.get('/nav', (req,res)=>{

    res.sendFile(__dirname + '/public/views/nav.html');

});

nav.css

*{padding: 0;margin: 0;color: #333;}

ul{list-style: none;}

a{

    color: inherit;

    text-decoration: none;

}

.clearfix{zomm:1;clear: both;}

.clearfix:after{

    content: "";

    display: block;

    clear: both;

    overflow: hidden;

    height: 0;

}

.container{

    margin: 100px auto;

    width: 400px;

    border: 1px solid #ddd;

}

.nav{margin-bottom: 10px;border-bottom: 1px solid #ddd;}

.nav li{

    float: left;

    width: 25%;

    box-sizing: border-box;

    text-align: center;

    border-right: 1px solid #ddd;

}

.nav li:last-child{border-right: 0;}

.nav li a{display: block;padding: 5px 0;}

.nav li a:hover{background-color: lightgray;}

.content{

    min-height: 200px;

}

.active{background-color: lightgray;}


查看完整回答
反對 回復 2018-10-20
  • 1 回答
  • 0 關注
  • 779 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號