2017-04-09 100 views
0

我有一個簡單的頁面選擇器,我在Angular 1.5頁面中使用。選擇作品的大部分,但ng選定的部分沒有。AngularJS ng選擇問題

如果我在第3頁,(這是諷刺的是最後一頁,不知道是否重要)3是默認選中的。如果我在第1頁或第2頁上,則選擇第一項(空白)。我不是超級熟練的Javascript,但認爲它可能是一個類型問題。試過設置$ scope.thisPage parseInt(page)和page.toString(),以防萬一它在我沒有意識到的表單下做了一些事情,但事實證明它們都是一樣的。

app.controller('myCtrl', ['$scope','$route','$routeParams', function($scope,$route,$routeParams) { 
    $scope.pages = []; 
    var page = $routeParams.p ? $routeParams.p : 1 
    $scope.thisPage = page; 
    for (var i = 0; i < 5; i++) { 
     $scope.pages.push(i); 
    } 
}]); 

<form name="myForm"> 
    <select ng-model="selectedPage" ng-change="switchPage(selectedPage)"> 
    <option ng-repeat="p in pages" ng-value="{{p}}" ng-selected="{{p == thisPage}}">{{p}}</option> 
    </select> 
</form> 

回答

1

你不需要設置所選屬性

<form name="myForm"> 
    <select ng-model="selectedPage" ng-change="switchPage(selectedPage)"> 
    <option ng-repeat="p in pages" ng-value="{{p}}">{{p}}</option> 
    </select> 
</form> 

而是綁定thisPage

的selectedPage值
app.controller('myCtrl', ['$scope','$route','$routeParams', function($scope,$route,$routeParams) { 
    $scope.pages = []; 
    var page = $routeParams.p ? $routeParams.p : 1 
    $scope.selectedPage= page; //////////////////////////////// 
    for (var i = 0; i < 5; i++) { 
     $scope.pages.push(i); 
    } 
}]); 
+0

如果他有使用ng選擇的理由怎麼辦?但是,這也是正確的:) – Sorikairo

+0

爲什麼使用ngSelected當你有雙向數據綁定 – Aravind

+0

如果沒有點存貨的價值,它只用於適當的樣式顯示? 我們要判斷誰:D – Sorikairo