标签: scope

请求范围变量

ColdFusion中请求范围使用的真实示例是什么?

这里:

请求请求范围用于当前请求.这些变量是非持久性全局变量.

它是否像JEE中的请求对象?

提前致谢.

variables coldfusion scope coldfusion-8

-1
推荐指数
1
解决办法
1362
查看次数

在所有视图中访问控制器变量

@event在控制器中有此变量,我想@event在所有视图中访问此变量。我不想将其设为全局变量。还有其他方法可以做到吗?我正在使用Rails 4.1。

ruby variables scope ruby-on-rails ruby-on-rails-4.1

-1
推荐指数
1
解决办法
661
查看次数

从对象列表中,获取其名称的字符向量

我有一个函数,它将函数列表作为参数.

library(moments)
library(plyr)
tests <- list(mean, varience, skewness, kurtosis)
f <- function(X, tests){
  out   <- each(... = tests)(X)   #each from plyr
  names(out) <- GetNames(tests)
  out
}
Run Code Online (Sandbox Code Playgroud)

我想GetNames获取对象列表,在本例中为函数,并将对象的名称作为文本返回.理想情况下,我想GetNames使用任何命名对象列表:

> GetNames(tests)
[1] "mean"     "varience" "skewness" "kurtosis"
Run Code Online (Sandbox Code Playgroud)

as.character(tests) 返回每个函数的代码文本,而不是它们的名称.

我试过了:

GN <- function(X) deparse(substitute(X))
GetNames <- function(X) lapply(tests, GN)
GetNames(tests)
Run Code Online (Sandbox Code Playgroud)

但这回归:

[[1]]
[1] "X[[i]]"

[[2]]
[1] "X[[i]]"

[[3]]
[1] "X[[i]]"

[[4]]
[1] "X[[i]]"
Run Code Online (Sandbox Code Playgroud)

在编写R代码时,我经常遇到这个问题的一些版本.我想要一个函数来评估它的参数的一些步骤,这里从tests它的对象的名称开始一步,然后停止并让我对结果做一些事情,这里将它们转换为字符串,而不是继续得到所指的对象我可以抓住它们之前的名字(名字).

evaluation scope r names substitution

-1
推荐指数
1
解决办法
44
查看次数

如何创建仅针对该文件的全局变量

许多函数用于多个文件.所以,我一直在重构我的JS,所以我可以为所有不同的文件提供单一功能服务.我是JS的新手并且正在阅读文档,看起来全局变量在整个应用程序中都可用.

如果我创建一个全局变量,比如说Total,这个变量在我的应用程序的其他几个部分中使用.我不希望不同的Totals 之间发生冲突......但是,我确实希望利用一个共同的功能,calculateTotals().鉴于它是一个多用户应用程序,我需要"隔离" Total另一个的每个实例.我不想诉诸于他们所有不同的名字.

那么 - 如何制作一个特定于单个文件的"全局变量"?

javascript scope

-1
推荐指数
1
解决办法
69
查看次数

在TypeScript中无法访问lambda中的类作用域?

我在TypeScript中有以下类,在Angular 2中用作Pipe来渲染降价。它编译没有错误,但是在运行时在标记的行上遇到了异常:

var Remarkable = require('remarkable');

@Pipe({
    name: 'markdown'
})
export class MarkdownPipe implements PipeTransform {
    public remarkable;

    constructor(private sanitizer: DomSanitizationService) {
        this.remarkable = new Remarkable({
            typographer: true
        });

        this.remarkable.use(this.parseVideos);
    }

    transform(value: string) : SafeHtml {
        if (value != null) {
            return this.sanitizer.bypassSecurityTrustHtml(this.remarkable.render(value));
        }
        return null;
    }

    public parseVideos(md) : void {
        md.inline.ruler.push('video', (state) => {
            return this.parseMedia(state, '@', 'video'); // this is undefined
        });
    }

    public parseMedia(state, startingMarker, tokenName) : boolean {
        // do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此代码时,出现运行时错误告诉我:

凡是 …

javascript scope this typescript angular

-1
推荐指数
1
解决办法
707
查看次数

你必须在R中定义一个函数的环境吗?

您是否必须在R中明确定义自定义函数的环境,还是在创建函数时自动"创建"(定义?)?

我想知道创建一个函数是否自动在所述函数中创建一个环境,或者是否需要显式创建环境.如果前者为真(即自动创建环境),我该如何明确引用它?

我必须首先为所述函数创建一个新环境(即,通过使用指定一个新环境new.env)或者我可以简单地使用其他一些语法(可能类似于" current.env()")吗?

我能想出的唯一一个简单的例子是assign函数内部的函数.

function(a,b) {
  assign(paste(a,b,sep='.'), 'help me', envir = ONLY CURRENT FUNCTION)
}
Run Code Online (Sandbox Code Playgroud)

environment scope r function

-1
推荐指数
1
解决办法
106
查看次数

在预定义函数内访问的全局变量返回null -javascript

出于某种原因,我无法访问变量.可能是范围问题,或时间问题,无法找到它.这是我的简化代码:

var endResult = "";

//function loads html into given element.Called as a callback later when google maps direction service is done//
function getResults(){
  $.ajax({
    url:'foo.php',
    data: endResult,
    //etc., response loaded asynchronously in div element//
  });
}

//when form is submitted
$('#form').submit(function(){
  var endResult = "";
  //get form data, define variable//
  $.post('bar.php',function(data){
    var location = data;
    //initialize Maps Directions Service//
    var directionService = new google.maps.DirectionsService();
    //function gets directions, and loads a single value into global variable "endResult"//
    function calcRoute(){
      var …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery google-maps scope

-1
推荐指数
1
解决办法
451
查看次数

在where子句下做声明

我想转换IO [String][String]具有<-约束力.但是,我需要do在一个where声明中使用一个块来做到这一点,但是Haskell一直抱怨缩进.这是代码:

decompEventBlocks :: IO [String] -> IO [[String]]
decompEventBlocks words
 | words' /= [] = block : (decompEventBlocks . drop $ (length block) words')
 | otherwise = []
  where 
   do
    words' <- words
    let block = (takeWhile (/="END") words')
Run Code Online (Sandbox Code Playgroud)

这是什么原因?我们如何dowhere声明中使用块?而且,我们是否有机会在警卫面前发表一些声明?

monads haskell scope functional-programming do-notation

-1
推荐指数
1
解决办法
432
查看次数

这个"代码"在这个JavaScript代码中意味着什么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <title>test</title>

    </head>
    <body>
        <script type="text/javascript" charset="utf-8">
            (function(){
                // this
                var test=function(){
                    //this
                    return function(){
                        //this
                    };
                }

                (function(){
                    //this
                    var a={
                        p1:function(){
                            //this
                        }
                    };
                })();
            })();
        </script>       
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript scope this

-2
推荐指数
1
解决办法
2152
查看次数

在调用开始之前,迭代中的值会发生变化

我在我的应用程序中有以下代码.

MyEventHandler handler = null; //Declare the handler

foreach (string pname in group)
{
  handler = getHandler(pname); //Get the handler
  if(handler == null)
  {                        
      throw new KeyNotFoundException("No user " + pname + " could be found");
  }
  //invoke the handler
  handler.BeginInvoke(this, e, new AsyncCallback(EndAsync), null);
}
Run Code Online (Sandbox Code Playgroud)

所以我得到了处理程序和调用BeginInvoke方法.但是在BeginInvoke被调用之前它会进入下一次迭代并且处理程序值会发生变化.因此BeginInvoke,这个新的处理程序正在参与其中.

希望你明白我的观点.那我怎么能消除这个问题呢?BeginInvoke因为我觉得这是一个时间的流逝,我不想打电话给睡觉.

有任何想法吗?

Update1 我很确定在调用BeginInvoke()之前处理程序对象会被更改.我猜BeginInvoke需要一些时间来创建一个单独的线程来调用另一个函数.

UPDATE2 此代码位于WCF服务中,客户端调用一个函数,该函数依次使用此函数.我为每个客户端分别存储在我的服务器中的处理程序.WCF服务具有双工合同,为客户端分隔会话.我看到执行此函数后,同一个用户被调用两次.但我设置了一个断点并调试它(这给BeginInvoke提供了调用函数所需的时间)它"完美地"工作.我非常确定我在线程中也遇到了这个问题,我在循环中创建了多个线程.如果线程委托具有参数a,b,c,并且如果在下一次迭代开始时更改它,则会发生相同的行为.我之前有多少人遇到过这个问题.如果我放一个Sleep()或者如果我复制一个处理程序并使用copy调用它就可以了.

UPDATE3

好的,我现在已经测试过了.我刚刚添加了Thread.Sleep(),如下所示.

chatTo.BeginInvoke(this, e, new AsyncCallback(EndAsync), null);
Thread.Sleep(500);
Run Code Online (Sandbox Code Playgroud)

它的工作就像一个魅力.有什么想法吗?

更新4

我创建了一个演示问题的线程示例,我已将其上传到此处.我希望解决这个问题也能解决我的问题.请检查样品.

.net c# scope asynchronous

-2
推荐指数
1
解决办法
227
查看次数