小编Kyl*_*cey的帖子

以这种方式将参数传递给匿名函数的目的是什么?

可能重复:
JavaScript闭包如何工作?

我正在玩Google Closure Compiler,输入随机代码来查看它会做什么.

它重写了我的一个函数,看起来像这样:

(function(msg) { console.log(msg); })("Hello World!");???????
Run Code Online (Sandbox Code Playgroud)

看来它"Hello World"是传递msg给它之前的匿名函数的参数.我看了一会儿,并且认为我在jQuery插件中看到类似的东西:

(function( $ ) {
  ...
})(jQuery); 
Run Code Online (Sandbox Code Playgroud)

在与冲突的范围内,现在对我来说更有意义$.但是将参数传递给这样的匿名函数的主要原因或目的是什么?为什么不简单地将参数定义为函数中的变量?编写这样的函数是否有任何性能或灵活性优势?

javascript jquery google-closure-compiler

48
推荐指数
1
解决办法
1227
查看次数

在Angular JS中放置用户定义函数的位置?

在我看来,我想呈现:

<p>
  {{ say() }}
</p>
Run Code Online (Sandbox Code Playgroud)

在哪里say定义如下:

say = function() {
  return "Hello World";
}
Run Code Online (Sandbox Code Playgroud)

我可以在我的控制器中定义它:

function TestCtrl($scope) {
  $scope.say = function() { ... };
}
Run Code Online (Sandbox Code Playgroud)

但是它只能在该控制器内访问.

如果我在Angular文件结构之外定义函数,它什么都不呈现.如果我在我的controllers.js文件中定义它,但在控制器函数范围之外,则相同.

放置我的功能的适当位置在哪里,所以我可以在任何控制器中渲染它?

javascript model-view-controller scope angularjs

35
推荐指数
1
解决办法
5万
查看次数

jQuery是否总是按照在代码中找到它们的顺序遍历DOM?

比方说,我有一个可排序的列表:

<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想知道的是,如果我进行如下的jQuery调用:

$.each($('li'), function(key, item) {...});

我可以期待jQuery从上到下遍历条目吗?我已经运行了一些测试,并尝试使用jQueryUI动态重新排列项目,到目前为止,它似乎总是按顺序运行.但总能预料到这一点吗?或者是运气不好,到目前为止我还没有碰到任何东西让我想到其他...?

jquery list jquery-ui-sortable

13
推荐指数
1
解决办法
2611
查看次数

将ActiveAdmin用户与现有用户模型合并

我在项目的早期设置了ActiveAdmin,并使用默认admin_users模型进行身份验证.我已经使用Devise来设置一个单独的用户模型,并且已经意识到合并这两个表可能会更加智能,这样管理员就可以在Activeadmin和站点的前端进行管理操作.如何配置ActiveAdmin以使用Users模型,可能使用列来标记管理员(例如,is_admin或者事件是管理员和管理员的权限级别)?

Rails 3.1
ActiveAdmin 0.3.3
Devise 1.4.9
Run Code Online (Sandbox Code Playgroud)

authentication model devise ruby-on-rails-3 activeadmin

9
推荐指数
1
解决办法
3775
查看次数

使用SSO从Google Apps登录我现有的应用程序

我的公司很快将转向Google Apps,我想提出让我们的网站管理页面通过OpenID进行身份验证的想法.因此,登录Google Apps的任何用户都将自动登录我们的网站管理员.目前,我们的网站管理员在数据库中拥有自己的用户和密码列表,但我希望基于Google Apps的用户列表,其唯一标识符保存在我们的数据库中.这样,只需在Google Apps中设置新员工即可访问我们的网站管理.

我已经做了一些研究,并且遇到了像SSO,OpenID和SAML这样的术语,但是我无法缩小我应该走哪条路线.谷歌似乎有很多开放的发展道路,而且我不确定我应该选择哪一条.

我的问题是:我为上述目的寻求什么样的身份验证,是否有人能指出我从哪里开始?我的网站发布在ColdFusion 9中,因此特定于该平台的答案是一个奖励.

openid coldfusion google-apps single-sign-on coldfusion-9

7
推荐指数
1
解决办法
375
查看次数

如何在jQuery中选择具有相同属性值的元素?

说我有这样的结构:

<div data-stuff="foo"></div>
<div data-stuff="foo"></div>
<div data-stuff="foo"></div>
<div data-stuff="bar"></div>
<div data-stuff="bar"></div>
<div data-stuff="bar"></div>
<div data-stuff="baz"></div>
Run Code Online (Sandbox Code Playgroud)

我想隐藏除了第一个之外具有相同属性的所有div,所以我得到:

<div data-stuff="foo"></div>
<div data-stuff="bar"></div>
<div data-stuff="baz"></div>
Run Code Online (Sandbox Code Playgroud)

现在我知道我可以这样做:

$('[data-stuff=foo]:gt(0), [data-stuff=bar]:gt(0), [data-stuff=baz]:gt(0)').hide();
Run Code Online (Sandbox Code Playgroud)

问题是,值data-stuff是动态生成的并且是不可预测的.我该怎么做才能完成这项任务?

编辑

DOM元素本身不一定相同,所以$ .unique()在这里没有帮助.同样重要的是FIRST仍然是显示的,因此重新排序不会发生.

jquery jquery-selectors

6
推荐指数
1
解决办法
6756
查看次数

对多个模型使用一个操作

我有大约5个表现非常相似的模型.事实上,我希望他们分享一个显示它们的动作.例如,对于模型Car,Truck,Van我想要一个如下定义:

[Car, Truck, Van].each do |Model|
  action_for Model do #I made this up to show what I mean
    def index
      @model = Model.all
      @model_names = @model.map(&:name).join(', ')
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点,所以我不是在多个控制器中定义相同的动作?(这不是很干)它会在application_controller中吗?如果问题不是太多,我怎么能这样做,所以他们也分享观点?

UPDATE

如果这可以在各个控制器之外,则是优选的.如果我能够正常工作,我甚至不需要生成单独的控制器.

model ruby-on-rails ruby-on-rails-3

6
推荐指数
1
解决办法
1106
查看次数

无法更改og_type

我刚刚用一个全新的Wordpress网站替换了一个tumblr网站.当通过Facebook调试器运行它时,我收到此错误:

" http://example.com/ "上的对象之前的类型为"tumblr-feed:tumblelog",无法更改为"网站"类型的对象,以避免现有操作的数据损坏.

我用Google搜索"不能改变og_type"(引号)并得到字面上为零的结果(现在似乎有这个问题的结果).我真的注定了Facebook数据不匹配吗?

wordpress tumblr opengraph

6
推荐指数
1
解决办法
2740
查看次数

在Ubuntu上使ColdFusion不区分大小写

我在Ubuntu 12.04盒子上安装了apache2和ColdFusion 9.我已经在Apache中使用CheckSpelling mod来禁用区分大小写的URL和Apache负责的其他路径.

现在,请记住,我正在使用大约4GB的遗留代码(大约6年的价值),并且很少符合惯例.在我之前的编码器并不关心区分大小写,看看应用程序是如何托管在Windows Box上的.在大多数情况下,ColdFusion表现为<cfinclude>CreateObject,但似乎<cfinvoke>(在代码库中经常使用)仍然区分大小写.

现在,我已经尝试了将代码移动到vfat分区的方法,但我遇到的是文件名的一大堆编码问题(我们处理外国公司并获得许多特殊字符).删除和/或重命名文件将是麻烦的,因为大多数也在MySQL数据库中被引用,并且也必须在那里进行修改.所以重新编码有点像噩梦.

所以,我很好奇ColdFusion在Linux上运行时是否有任何特殊标志不区分大小写,或者是否有另一种方法可以将这些全部组合在一起?

编辑

我很抱歉,我错了.cfinvoke似乎工作正常.我窒息了cfobject

apache coldfusion ubuntu case-sensitive coldfusion-9

5
推荐指数
1
解决办法
1089
查看次数

样式媒体接收器源(Chromecast)

目前,我正在开发我的应用程序的chromecast集成.目前,您的演员接收器应用程序有3个选项

  • 风格媒体接收器
  • 默认媒体接收器
  • 定制媒体接收器

我非常喜欢风格的媒体接收器的造型,因为这样很容易为你的接收器设计风格.但是,有时我真的想扩展该接收器的功能.例如,像音量指示器一样.

有没有办法可以获得风格媒体接收器的源代码?我检查了谷歌演员的Github,但找不到它.有没人试过这个?

javascript css html5 google-cast chromecast

5
推荐指数
1
解决办法
1042
查看次数