2017-04-09 69 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