我在Angular 1.5页面中使用了一个简单的页面选择器。选择适用于大多数情况,但ng选择的部分不适用。
如果我在第3页(具有讽刺意味的是最后一页,不确定是否重要),默认选择3。如果我在第1页或第2页,则选择第一项(空白)。我不是精通Javascript,但认为它可能是一个类型问题。尝试使用parseInt(页面)和page.toString()设置$ scope.thisPage以防万一它在我不知道的工作表下做了什么,但结果都是一样的。
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>
答案 0 :(得分:1)
ngSelected需要表达式如下p == thisPage
而不是{{p == thisPage}}
答案 1 :(得分: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>
而是将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);
}
}]);