html5Mode中的AngularJS 1.0.7和AngularStrap bs-select指令重定向到索引

时间:2015-02-19 19:45:36

标签: angularjs angular-strap

我有和AngularJS 1.0.7 Web应用程序,我正在使用AngularStrap select指令。一切都工作正常,直到我将我的应用程序移动到html5Mode。我这样做是为了美化我的网址。

但现在,当我在任何bs-select组件中选择一个选项时,我会重定向到索引。

HTML

<select class="show-tick" ng-model="selectType" ng-options="boatType as (boatType.name | translate) for boatType in boatTypes" bs-select>
    <option value="" selected>{{'BOAT_TYPE' | translate}}</option>
</select>  

JS控制器:

$scope.$watch('selectType', function() { 
            if($scope.selectType != undefined) {
                BoatModel.query({type_id: $scope.selectType.id},
                    function success(result){
                        if(result.length == 0){
                            $scope.boatModels = new Array ();
                            $scope.selectModel = undefined;
                            SearcherService.setModel(undefined);
                        }
                        else{
                            $scope.boatModels = result.slice();        
                        }
                    }
                );
                SearcherService.setType($scope.selectType.id);
                $scope.selectModel = undefined;
            }
            else {
                SearcherService.setType(undefined);
                $scope.selectModel = undefined;
            }
        });

1 个答案:

答案 0 :(得分:0)

我修好了。

我发现Bootstrap Select指令生成的代码与html5Mode不兼容,因为它在select中的每个选项中都插入了一个href =“#”。当您单击它时,您将被重定向到索引。

指令中的原始代码

createA:function(test, classes) {
         return '<a tabindex="-1" href="#" class="'+classes+'">' +
                 '<span class="pull-left">' + test + '</span>' +
                 '<i class="icon-ok check-mark"></i>' +
                 '</a>';

我只是通过删除href修复它,如下所示:

createA:function(test, classes) {
         return '<a tabindex="-1" class="'+classes+'">' +
                 '<span class="pull-left">' + test + '</span>' +
                 '<i class="icon-ok check-mark"></i>' +
                 '</a>';