【问题标题】:Bootstrap Tab in Angular Js not worksAngular Js中的引导选项卡不起作用
【发布时间】:2015-01-31 10:50:07
【问题描述】:

我正在创建一个有角度的 js 应用程序。它有一个侧边栏导航系统。当我单击侧边栏项目时,它必须在内容部分的该项目下显示内容,我正在使用引导程序 看我写的代码

HTML

 <div class="sidebar">
            <ul>
                <li ng-repeat="item in supplyItem">
                    <a class="span" href="#{{item.header}}">{{item.header}}</a>
                </li>
            </ul>
       </div>
       <div class="content-part">

              <div class="tab-content">
            <div class="tab-pane" ng-repeat="item in supplyItem" id="{{item.header}}">
                {{item.desc}}                
            </div>
        </div>

JS

myApp.config(['$routeProvider',function($routeProvider){
$routeProvider.
    when('/home',{
        templateUrl : 'partials/home_page.aspx',
        controller:'HomePageController',
    }).
    when('/supplies',{
        templateUrl : 'partials/supplies.aspx',
        controller:'MyController',
    }).

    otherwise({
        redirectTo: '/home'
    });


}]);

    appController.controller('MyController', ['$scope', function ($scope) {

        $scope.supplyItem = [
        {
            "header": "header1",
            "desc": "Descipriotn 1"
        },
        {

            "header": "header2",
            "desc": "Descipriotn 2"

        }
        ];

        $('.sidebar a').click(function (e) {
            e.preventDefault();
                $(this).tab('show');
            });

            $(function () {
                $('.sidebar a:last').tab('show');
            });
    } ]);

但是当我点击侧边栏导航项时,它会转到我在 routeProvider.otherwise()

中提到的主页

什么是错误,我该如何解决?请任何人帮助我

【问题讨论】:

    标签: javascript jquery angularjs twitter-bootstrap


    【解决方案1】:

    我认为你应该让你的 Tap-pane div 的 id 不同:

    id="item.header" 应该是 id="{{item.header}}"

    【讨论】:

    • 哦,那是一个问题错误,实际上就像你在我的原始代码中所说的那样,我已经编辑了代码
    【解决方案2】:

    我还注意到在你的 JS 中你有:

    $scope.supplyItem = [ { “标题”:“标题1”, "desc": "描述 1" }, { “标题”:“标题1”, "desc": "描述 2" } ];

    而且我认为“header”值应该不同,以便引导插件区分不同的 div。

    【讨论】:

    • 好的,在这种情况下,header 属性被分配给 a href att,我认为它们应该是 /home 和 /supplies。我这是另一个错字? ;)
    • 我没明白,你是什么意思?
    • 哦,我错了。您可以尝试使用 console.log 或其他东西来调试侧边栏单击侦听器以查看它是否被调用?因为我认为您正在使用 $ 选择器并且它没有获得任何值,因为 AngularJS 尚未将项目放入 DOM。
    • 我已经添加了一个警报,但它没有采取,即事件不起作用
    • 嗯,我就是这么想的。我认为你应该在指向你的听众的标签 div 上使用 ng-click。这样你就可以确保它是角度安全的
    猜你喜欢
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    相关资源
    最近更新 更多