问题标签 [scopes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - javascript中的作用域
我在 javascript 中有一个 simpe 对象,它的方法很少。其中两个我想用window.setTimeout
函数定期调用。我当前的代码如下所示。
问题显然是我误解了范围是如何工作的,看起来从超时调用函数时,它是从另一个实际上不存在的上下文中调用的?
scopes - 范围如何工作?
作用域是指函数作用域、类作用域、库、DLL 等等。
如果最后所有代码都被翻译成一系列指令(由编译器),高级语言中的高级范围如何对最低级别的代码产生任何影响?
ruby-on-rails - ActiveRecord 关联和范围哦,我的
我试图弄清楚如何从多个表中提取数据并理解它。
我有events
,occurrences
和venues
表。
以下是迄今为止的模型/协会:
模型/事件.rb:
模型/地点.rb:
模型/occurrence.rb:
我想在我的 view/events/index.html.erb 中显示的是今天发生的所有事件的表格,我喜欢这样做:
并显示与.today
范围匹配的所有事件。
我尝试将范围移动到event
模型无济于事。我应该将范围移动到事件模型吗?到目前为止,我的搜索已经引导我到“使用范围在 ActiveRecord 中的多个 DateTime 范围内返回结果”和“ Rails 3.0 中的多个范围”,但我真的无法从中做出任何事情。
谁能指出我正确的方向?我应该在我的事件模型中创建一个新函数吗?
ruby-on-rails - 在 activeadmin 资源中需要范围
我正在使用 activeadmin,需要弄清楚如何要求范围仅显示与当前用户有关的记录。
我还有其他用户可以选择的范围,但可以说这些范围需要“预先确定”,以便在任何给定时间只有属于该用户的记录可用。
我希望这是有道理的。我对这一切都很陌生,所以我不确定从哪里开始。提前感谢您的帮助。
ruby-on-rails - 从其他模型继承的rails 3范围
有没有办法将一个模型范围用作另一个模型范围的一部分?
例子
jsf - 具有 @ViewScoped 行为的 @SessionScoped bean
我的会话范围 bean 出现了奇怪的行为。我使用以下导入和注释使其具有会话范围:
编辑:更多代码
JSF 页面的代码片段:
现在,当我单击 jsf 页面中的链接时,会实例化这样的 DetailsBean。当我单击具有不同内容的另一个链接时,将使用相同的 bean,因为我仍在同一个会话中。现在奇怪的是,即使我创建了 2 个不同的浏览器选项卡,即使在刷新页面后它们也会显示不同的内容。同一个 bean 实例如何显示不同的内容?我认为通常只有 @ViewScoped bean 可以实现这一点?不要误会我的意思,我确实希望他们显示不同的内容,所以@ViewScoped 将是在这里使用的正确决定,但我只是想知道这怎么可能......
EDIT2:当我使用 javax.faces.ViewScoped 时,上面的代码不再起作用(然后由于 LinkedHashMap,我得到 java.io.NotSerializableException)
java - 如何将实体从一个 jsf 视图传输到另一个?
我有以下结构:
列表视图.xhtml
ListBean.java
编辑视图.xhtml
编辑Bean.java
你知道这个问题:如何将选定的实体从 listView 传输到 editView?我想这应该很简单,但是一整天后,我没有得到它的工作。
我尝试了不同的东西,比如@ManagedProperty
但<f:param name="" value="">
我没有帮助我。所以请告诉我这有多简单和好:)
提前致谢!
更新 - 解决方案#1
感谢 Daniel,一种可行的方法是,当实体由 EntityManager 持有时,您可以通过其 id 访问实体。因此,您将 id 作为请求参数传递。开始了:
列表视图.xhtml
编辑Bean.java
spring - 将请求范围的 bean 自动装配到应用程序范围的 bean 中
是否可以将请求范围的 bean 自动装配到应用程序范围的 bean 中。IE
我有一个类 RequestScopedBean:
和一个类应用程序范围的 bean,其中请求范围的 bean 是自动装配的。
spring-config xml如下:
当我尝试运行此应用程序时,applicationScopedBean 的 bean 创建失败并出现以下错误:
java - 如何在 Java Compiler API 中将 Trees.isAccessible() 用于原始数据类型/如何将 TypeMirror 转换为 DeclaredType
我正在尝试使用 Java Compiler API 分析 .java 文件。我当前的问题是找出给定变量、方法或类是否在程序的特定范围内已知(范围是指在 Java Compiler API 本身中定义的范围,请参见此处:http:// docs.oracle.com/javase/6/docs/jdk/api/javac/tree/com/sun/source/tree/Scope.html)。
Java 编译器 API ( http://docs.oracle.com/javase/6/docs/jdk/api/javac/tree/com/sun/source/util/Trees.html )的 Trees 类有一个实用方法来这样做:是可访问的。如果目标节点在给定范围内已知,则此方法获取 Scope 和目标节点及其声明的类型并返回 true。
不幸的是,我不知道如何创建这个 DeclaredType 对象(从现在开始,我只能编写类名并且不再发布超链接,因为 stackoverflows 垃圾邮件预防:javax.lang.model.type.DeclaredType)。我可以询问目标节点的类型(javax.lang.model.element.Element [asType()-method]),但它返回的是 TypeMirror 实例,而不是 DeclaredType。
目前我使用这两行代码:
其中“referenceCompTree”是当前程序的树实例,referenceScope 是有问题的 Scope,nodeElement 是有问题的节点和 nodeType ...嗯,应该是有问题的节点的 DeclaredType。
这种直接类型转换方法适用于一种情况,即类的节点(我认为这是有效的,因为节点声明了自己的类型,因此它的 typeMirror 等效于它自己的类型)。但它绝对不适用于原始类型的变量(如标题中所述),我不确定它是否适用于变量。
有没有人知道
- 如何将 Trees 的 isAccessible 方法用于原始类型,或者更具体地说:如何将 TypeMirror 实例转换为 DeclaredType 实例?或者
- 如何在不使用 isAccessible 的情况下获取我想要的信息(如果变量、类或方法在给定范围内已知)?
附录:
我确实对这两个问题进行了进一步的研究,并想向您介绍我发现的一些事情:
- 有一个名为 Types (javax.lang.model.util.Types) 的实用程序类。可以使用标准 Java Compiler API 类(在本例中为:com.sun.source.util.JavaTask)获取类型的实例。此对象有一个方法 (getDeclaredType),它返回给定 TypeElement 和一些 TypeMirror 的 DeclaredType 实例。但是这个方法对我也不起作用,因为它会抛出一个错误,指出我以前很少输入参数。我想这个方法的唯一目的是为给定的原始类和一些类型参数返回一个 DeclaredType 实例(例如,要为 HashMap 创建 DeclaredType 实例,您可以将此方法与用于 HashMap 的 typeElement 和用于 String 的两个 typeMirror 一起使用)。显然这不是我打算做的。
- 我试图通过查找变量、类或方法在给定范围内是否已知变量、类或方法来编写解决方法,方法是查找其各自的修饰符并搜索范围树,但我不相信这种方法,主要原因有两个:不确定我是否在我的搜索算法中正确地获得了 Java 范围构造的所有特殊情况,其次这似乎非常不必要,因为我试图重新实现一些(似乎)已经存在并且 Java 编译器一直在执行的东西。天啊,即使是我的 NetBeans 也一直告诉我给定的变量、方法或类是否在我当前的范围内是已知的。所以必须有办法。
ruby - Ruby 作用域、常量优先级:词法作用域或继承树
我将向您展示rubykoans教程中的代码片段。考虑下一个代码:
实际上问题在评论中(我用星号突出显示(尽管它打算用粗体显示))。有人可以解释一下吗?提前致谢!