1. 程式人生 > >AngularJS學習-(左側導航欄篩選、input輸入框篩選)

AngularJS學習-(左側導航欄篩選、input輸入框篩選)

1、HTML程式碼

<body ng-controller="showProduct">
<!-- 左側導航欄 -->
    <div class="nav-list" >
        <a ng-click="clickNav()">首頁</a>
        <a ng-repeat="nav in navList" ng-click="clickNav(nav.classify)" ng-class="focusNav(nav.classify)">{{nav.classify}}</a>
    </div>
<!-- 右側顯示錶單內容 -->
    <div class="tab-cont">
        <!-- 表單輸入過濾 -->
        <input type="text" placeholder="輸入關鍵字搜尋" ng-model="selt"/>
        <!-- 迴圈出商品詳細資訊 -->
        <div class="tab" ng-repeat="product in productDetail | filter:filterNav | filter:selt">
                <h3>{{product.name}}</h3>
                <p>{{product.describe}}</p>
                <h4>{{product.price | currency:"¥RMB:"}}</h4>
                <button>加入購物車</button>
        </div>
    </div>
    
</body>


2、JS程式碼

var productApp=angular.module("productStore",[]);
productApp.controller("showProduct",function($scope){

// 定義顯示的商品資訊
$scope.showClassify=null;

// 定義開始頁數
$scope.startPage=1;

// 定義每頁顯示條數
$scope.pageNum=2;

// 點選導航條儲存商品種類
$scope.clickNav=function(Classify){
$scope.startPage=1;
$scope.showClassify=Classify;
alert(Classify);
}

// 設定過濾器
$scope.filterNav=function(product){
// 這裡相當於給全域性變數賦值,product.classify是由ng-repeat迴圈出來的
return $scope.showClassify==product.classify || $scope.showClassify==null;
}

// 設定下一頁
$scope.nextFoot=function(data){
$scope.startPage=data;
}
// 設定選中樣式
$scope.focusNav=function(data){
if(data==$scope.showClassify||data==$scope.startPage){
return "active";
}
}

// 設定左側導航欄展示的json資料
$scope.navList=[
{"id":"001","classify":"商品分類1"},
{"id":"002","classify":"商品分類2"},
{"id":"003","classify":"商品分類3"}
];

// 設定商品詳情json資料
$scope.productDetail=[
{
"name":"商品1",
"describe":"商品1的描述",
"price":"33.44",
"classify":"商品分類1"
},
{
"name":"商品2",
"describe":"商品2的描述",
"price":"55.66",
"classify":"商品分類2"
},
{
"name":"商品3",
"describe":"商品3的描述",
"price":"88.66",
"classify":"商品分類3"
}
]

});