我很好奇$scope.$eval你经常在指令中看到你,所以我查看了源代码,发现以下内容rootScope.js:
$eval: function(expr, locals) {
return $parse(expr)(this, locals);
},
Run Code Online (Sandbox Code Playgroud)
$parse似乎是由ParseProviderin 定义的parse.js,它似乎定义了它自己的某种迷你语法(文件长900行).
我的问题是:
究竟在$eval做什么?为什么它需要自己的迷你解析语言?
为什么不使用普通的旧JavaScript eval?
如果您希望在工作代码中看到问题,请从这里开始:http://jsbin.com/ayigub/2/edit
考虑这几乎相同的方式来编写一个简单的方法:
app.directive("drinkShortcut", function() {
return {
scope: { flavor: '@'},
template: '<div>{{flavor}}</div>'
};
});
app.directive("drinkLonghand", function() {
return {
scope: {},
template: '<div>{{flavor}}</div>',
link: function(scope, element, attrs) {
scope.flavor = attrs.flavor;
}
};
});
Run Code Online (Sandbox Code Playgroud)
当它们自己使用时,这两个指令的工作和行为相同:
<!-- This works -->
<div drink-shortcut flavor="blueberry"></div>
<hr/>
<!-- This works -->
<div drink-longhand flavor="strawberry"></div>
<hr/>
Run Code Online (Sandbox Code Playgroud)
但是,在ng-repeat中使用时,只有快捷方式版本有效:
<!-- Using the shortcut inside a repeat also works -->
<div ng-repeat="flav in ['cherry', 'grape']">
<div drink-shortcut flavor="{{flav}}"></div>
</div>
<hr/>
<!-- HOWEVER: using the …Run Code Online (Sandbox Code Playgroud) 我试图了解nginx的try_files指令是如何工作的.nginx正在我的服务器上运行并提供位于的默认页面/usr/share/nginx/html/index.html.
但是,我有一个简单的html页面位于文件系统中/var/www/test/index.html.以下配置文件未导致该文件被提供.我想理解为什么不这样做,以及我需要做出哪些改变才能实现.
这是defualt.conf的相关部分:
server {
listen 80;
server_name localhost;
root /var/www;
try_files /test/index.html /;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个内置的Ruby方法,它具有与index二进制搜索算法相同的功能,因此需要预先排序的数组.
我知道我可以编写自己的实现,但根据" Ruby #index Method VS Binary Search ",索引使用的内置简单迭代搜索比纯Ruby版本的二进制搜索更快,因为内置方法是用C写的.
Ruby是否提供任何进行二进制搜索的内置方法?
这个介绍Swift的苹果开发者页面有一个链接3段,用于下载"GuidedTour.playground"文件,该文件应该允许您以交互方式跟随教程.但是,当我在XCode6 Beta中打开这个文件时(我正在使用2个月大的MB专业版,OSX 10.9.3),我只看到这个屏幕,它不响应鼠标点击或其他任何事情(注意:"GuidedTour. playground"是前景窗口,后面有另一个默认的游乐场窗口):

我怎样才能使它工作?
奖金问题:可能不相关,但是当我玩默认游乐场时,我无法弄清楚println语句应该输出到哪里.它们不会显示在实时右侧窗格中,也不会显示在底部的控制台中.
我已经阅读了文档,但无法弄清楚这是否可行.
我想保留默认设置g:ctrlp_working_path_mode = 2,但是如果需要,我希望能够手动覆盖当前窗口中所有缓冲区的设置.
具体来说,我想发出一个ctrlp命令或更改设置根搜索目录的ctrlp配置变量,这样就可以将该目录用于所有将来的搜索,无论我在哪个缓冲区中.
奖金问题:是否可以设置两个根目录,以便搜索它们并组合结果?
谢谢!
Java专家强调避免过早优化的重要性,而是专注于清洁OO设计.我试图在重写使用大量长元素(几百万)的程序的上下文中调和这个原则.似乎使用ArrayList会消耗大量原始数组long的内存的3倍,并且浪费那么多RAM似乎是我合理关注的问题.
我基于我在这里描述的 MemoryTestBench类进行的实验.我的测试和输出如下:
package memory;
import java.util.ArrayList;
import java.util.List;
public class ArrayListExperiment {
public static void main(String[] args) {
ObjectFactory arrayList = new ObjectFactory() {
public Object makeObject() {
List<Long> temp = new ArrayList<Long>(1000);
for (long i=0; i<1000; i++)
temp.add(i);
return temp;
}
};
ObjectFactory primitiveArray = new ObjectFactory() {
public Object makeObject() {
long[] temp = new long[1000];
for (int i=0; i<1000; i++)
temp[i] = i;
return temp;
}
};
MemoryTestBench memoryTester = new MemoryTestBench();
memoryTester.showMemoryUsage(primitiveArray);
memoryTester.showMemoryUsage(arrayList);
} …Run Code Online (Sandbox Code Playgroud) 我正在使用的卷曲请求时序信息--write-out所描述的选项,在这篇文章中.
以下是我的一个请求的示例输出:
time_namelookup: 0.031
time_connect: 0.328
time_appconnect: 1.560
time_pretransfer: 1.560
time_redirect: 0.000
time_starttransfer: 1.903
----------
time_total: 2.075
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何确定服务器处理请求的时间?答案是:
time_starttransfer - time-connect
Run Code Online (Sandbox Code Playgroud)
也就是说,从建立连接到服务器开始发送响应的时间?这似乎是正确的,但我想确定.
有关curl时序变量的详细信息,请访问:http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
我想将节点脚本作为cronjob运行,它使用Gmail的API来轮询我拥有的Gmail帐户.
我正在按照这些快速入门说明操作:
我坚持第一步.在请求cron脚本的凭据时,它告诉我"无法从没有UI的平台访问用户数据,因为它需要用户交互才能登录":
这些文档总体上令人困惑,并提到"服务帐户","OAuth"和其他内容 - 我无法分辨哪些适用于我的用例,哪些不适用.我使用了许多SaaS API,典型的工作流程是登录您的帐户,获取API密钥和密钥,并使用脚本中的API访问API.这似乎不是 Gmail API使用的范例,所以我很感激任何指导或指向更清晰指示的链接.
要查看操作中的问题,请参阅此jsbin.单击按钮会触发buttonHandler(),如下所示:
function buttonHandler() {
var elm = document.getElementById("progress");
elm.innerHTML = "thinking";
longPrimeCalc();
}
Run Code Online (Sandbox Code Playgroud)
您可能希望此代码将div的文本更改为"思考",然后运行longPrimeCalc()一个需要几秒钟才能完成的算术函数.然而,这不是发生的事情.相反,"longPrimeCalc"首先完成,然后文本在运行完毕后更新为"思考",就好像两行代码的顺序相反.
看起来浏览器不会同步运行"innerHTML"代码,而是为它创建一个自己休闲执行的新线程.
我的问题:
longPrimeCalc()" 之前更新"innerHTML "?我在最新版本的chrome中测试了这个.