Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
盎格鲁语+;RoR+;jQuery-jQuery的问题_Jquery_Angularjs_Ruby On Rails 4 - Fatal编程技术网

盎格鲁语+;RoR+;jQuery-jQuery的问题

盎格鲁语+;RoR+;jQuery-jQuery的问题,jquery,angularjs,ruby-on-rails-4,Jquery,Angularjs,Ruby On Rails 4,我在angular+ror应用程序中遇到jQuery问题。我想用javascript做一些事情,比如删除和添加类,但问题是我并没有在angular controller或sort中这样做,我想在单独的.js文件中这样做。这里有一个问题,jQuery的工作方式不是它应该的,例如: $(document).ready(function() { $("a").click(function() { console.log("CLICKED"); }); conso

我在angular+ror应用程序中遇到jQuery问题。我想用javascript做一些事情,比如删除和添加类,但问题是我并没有在angular controller或sort中这样做,我想在单独的.js文件中这样做。这里有一个问题,jQuery的工作方式不是它应该的,例如:

$(document).ready(function() {
    $("a").click(function() {
        console.log("CLICKED");
    });
    console.log($("a"));
});
上面的代码不起作用,控制台显示我的文档中没有“a”标记。即使有“a”标签

但是下面的代码是有效的,它向控制台显示了全身元素:

$(document).ready(function() {
    $("body").click(function() {
        console.log("CLICKED");
    });
    console.log($("body"));
});
我正在使用jquery rails gem,下面您可以看到我的application.js文件。我使用资产管道要求所有角度文件(当然测试除外)

application.js:

//= require jquery
//= require jquery_ujs
//= require angular.min.js
//= require angular-resource.min.js
//= require angular-route.min.js
//= require ./angular/angular_app_declaration.js
//= require bootstrap-sprockets
//= require_tree .
我使用RubyonRails生成了唯一的标准视图,即application.html.erb,我使用RoR作为API,其余视图由angular路由处理,angular通过生成templateUrl添加“a”标记


如何使jQuery工作?

为了让jQuery到达标记,您应该使用

在由角度模板加载的
HTML
中。你可以这样做

<a href="http://example.com" custom-directive >Link</a>

第1步-不要在AngularJS应用程序中使用jQuery。我在您的文档中没有看到任何
a
标记您的问题是
app.module('App', [])

...

.directive('customDirective', [function(){
    return {
        link : function(scope, elem, attr){
            elem.on('click', function(){ console.log(' CLICKED ! '); });
        },
        restrict : 'A'
    }

}])