首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngluarJS + RoR + jQuery - jQuery的问题

AngluarJS + RoR + jQuery - jQuery的问题
EN

Stack Overflow用户
提问于 2014-12-03 23:00:28
回答 1查看 30关注 0票数 0

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

代码语言:javascript
运行
复制
$(document).ready(function() {
    $("a").click(function() {
        console.log("CLICKED");
    });
    console.log($("a"));
});

上面的代码不起作用,控制台显示我的文档中没有"a“标记。即使有“一个”标签。

但是下面的代码可以工作,它向控制台显示了整个body元素:

代码语言:javascript
运行
复制
$(document).ready(function() {
    $("body").click(function() {
        console.log("CLICKED");
    });
    console.log($("body"));
});

我正在使用jquery创业板,下面您可以看到我的application.js文件。我使用资产管道来要求所有的角度文件(当然,测试除外)。

application.js:

代码语言:javascript
运行
复制
//= 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 .

我只使用Rails (即application.html.erb )生成标准视图,我使用RoR作为API,其余视图由角路由处理,而"a“标记是通过生成templateUrl按角添加的。

我如何使jQuery工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 23:22:43

为了让您的jQuery到达您的标记,您应该使用角指令

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

代码语言:javascript
运行
复制
<a href="http://example.com" custom-directive >Link</a>

然后在角度app.js中,执行以下指令:

代码语言:javascript
运行
复制
app.module('App', [])

...

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

}])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27283295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档