AngularJS ng-select问题

时间:2017-04-09 00:05:43

标签: angularjs

我在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>

2 个答案:

答案 0 :(得分:1)

ngSelected需要表达式如下p == thisPage而不是{{p == thisPage}}

来源:https://docs.angularjs.org/api/ng/directive/ngSelected

答案 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);
    }
}]);