2014-12-03 14 views
0

我在我的angular + ror應用程序中遇到jQuery問題。我想用JavaScript做一些事情,比如刪除和添加類,但問題是我沒有在角控制器或排序中做這個,我想在單獨的.js文件中做。而這裏的漁獲物,jQuery是工作不應該的方式,例如:AngluarJS + RoR + jQuery - jQuery問題

$(document).ready(function() { 
    $("a").click(function() { 
     console.log("CLICKED"); 
    }); 
    console.log($("a")); 
}); 

上面的代碼是不工作,並且控制檯顯示,有我的文檔中沒有「一」的標籤。即使有「a」標籤。

但這個代碼下面工作的,它顯示在控制檯全身因素:

$(document).ready(function() { 
    $("body").click(function() { 
     console.log("CLICKED"); 
    }); 
    console.log($("body")); 
}); 

我使用jQuery護欄寶石,下面你可以看到我的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 . 

我生成僅使用Ruby標準視圖on Rails的是application.html.erb,我使用的RoR作爲API,視圖其餘由角路由處理,是通過生成templateUrl按角度添加「a」標籤。

我該如何讓jQuery工作?

+0

第1步 - 在你的AngularJS應用沒有使用jQuery。 – AlienWebguy 2014-12-03 23:05:08

+0

我在文檔 – 2014-12-03 23:07:32

回答

1

爲了讓你的jQuery到達你的標籤,你應該使用Angular Directives

在您的HTML由角模板加載。你可以做這樣的事情。

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

然後在您的角度app.js,使指令:

app.module('App', []) 

... 

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

}])