使用angular js进行路由,其他javascript不使用';不适用于路由选项卡

使用angular js进行路由,其他javascript不使用';不适用于路由选项卡,javascript,angularjs,Javascript,Angularjs,我正在使用angularjs开发一个单页应用程序。路由工作得很好,而且我的javascript针对的元素不在ng视图中。但是,用于ng视图中元素的javascript根本不起作用 例如,当我点击我的导航菜单时,javascript工作得很好,菜单背景会改变颜色,但是如果我导航到one.html并点击链接,就根本不会触发javascript index.html one.html 您可以使用 $('body').on('click', '.navbar-nav>li>a', func

我正在使用angularjs开发一个单页应用程序。路由工作得很好,而且我的javascript针对的元素不在
ng视图中。但是,用于
ng视图中元素的javascript根本不起作用

例如,当我点击我的导航菜单时,javascript工作得很好,菜单背景会改变颜色,但是如果我导航到
one.html
并点击链接,就根本不会触发javascript

index.html one.html

您可以使用

$('body').on('click', '.navbar-nav>li>a', function() {
    $('.navbar-nav>li').css('background', '#fcfcfc');
    $(this).parent().css('background', '#337ab7');    
)};
但这是一种制作角度应用程序的糟糕方式。通常,您不会在angular应用程序范围之外创建事件处理程序。您至少应该使用ng click。更好的方法是创建一个指令。

您可以使用

$('body').on('click', '.navbar-nav>li>a', function() {
    $('.navbar-nav>li').css('background', '#fcfcfc');
    $(this).parent().css('background', '#337ab7');    
)};

但这是一种制作角度应用程序的糟糕方式。通常,您不会在angular应用程序范围之外创建事件处理程序。您至少应该使用ng click。更好的方法是创建一个指令。

您的ng视图位于任何控制器之外

必须为管线(局部视图)定义控制器,如下所示:

var app=angular.module('single-page-app',['ngRoute']);
app.config(function($routeProvider){
    $routeProvider
        .when('/1',{
            templateUrl: 'one.html',
            controller: 'oneCtrl'
        })
        .when('/2',{
            templateUrl: 'two.html',
           controller: 'twoCtrl'
        })

        .when('/3',{
            templateUrl: 'three.html',
            controller: 'threeCtrl'
        })
        .when('/4',{
          templateUrl: 'four.html',
          controller: 'fourCtrl'
        })
});
app.controller('cfgController',function($scope){

});
app.controller('oneCtrl',function($scope){

});
app.controller('twoCtrl',function($scope){

});
app.controller('threeCtrl',function($scope){

});

之后,您可以在相应的控制器中为某些视图执行javascript。路由逻辑将确保您在ng视图中注入的每个局部视图都使用为该视图(或模板)定义的控制器。

您的ng视图位于任何控制器之外

必须为管线(局部视图)定义控制器,如下所示:

var app=angular.module('single-page-app',['ngRoute']);
app.config(function($routeProvider){
    $routeProvider
        .when('/1',{
            templateUrl: 'one.html',
            controller: 'oneCtrl'
        })
        .when('/2',{
            templateUrl: 'two.html',
           controller: 'twoCtrl'
        })

        .when('/3',{
            templateUrl: 'three.html',
            controller: 'threeCtrl'
        })
        .when('/4',{
          templateUrl: 'four.html',
          controller: 'fourCtrl'
        })
});
app.controller('cfgController',function($scope){

});
app.controller('oneCtrl',function($scope){

});
app.controller('twoCtrl',function($scope){

});
app.controller('threeCtrl',function($scope){

});

之后,您可以在相应的控制器中为某些视图执行javascript。您的路由逻辑将确保您在ng视图中注入的每个局部视图都使用为该视图(或模板)定义的控制器。

您没有为路由定义控制器。您可以对此进行扩展吗?我只是在学习angularjs,我试着跟随教程,但我有点迷路了。我不明白什么代码不起作用?是否有其他控制器与模板关联?他的ng.view在任何控制器之外,他必须在其路由配置中为视图定义控制器。我建议使用比基本根目录更好的控制器。您没有为路由定义控制器。您可以对此进行扩展吗?我只是在学习angularjs,我试着跟随教程,但我有点迷路了。我不明白什么代码不起作用?是否有其他控制器与模板关联?他的ng.view在任何控制器之外,他必须在其路由配置中为视图定义控制器我建议使用比基本根更好的控制器。你是圣人。谢谢你救了我的头发,你是个圣人。谢谢你让我的头发不被拔出来。
var app=angular.module('single-page-app',['ngRoute']);
app.config(function($routeProvider){
    $routeProvider
        .when('/1',{
            templateUrl: 'one.html',
            controller: 'oneCtrl'
        })
        .when('/2',{
            templateUrl: 'two.html',
           controller: 'twoCtrl'
        })

        .when('/3',{
            templateUrl: 'three.html',
            controller: 'threeCtrl'
        })
        .when('/4',{
          templateUrl: 'four.html',
          controller: 'fourCtrl'
        })
});
app.controller('cfgController',function($scope){

});
app.controller('oneCtrl',function($scope){

});
app.controller('twoCtrl',function($scope){

});
app.controller('threeCtrl',function($scope){

});