草庐IT

Block-scoped

全部标签

javascript - 什么时候使用 $scope.$apply() 是安全的?

我想标题已经很清楚我要问什么了。我创建了这个fiddle:http://jsfiddle.net/Sourabh_/HB7LU/13142/在fiddle中,我试图复制一个async场景。这只是一个示例,但在AJAX调用中,如果我不使用$scope.$apply(),则列表不会更新。我想知道每次进行AJAX调用以更新列表时使用$scope.$apply()是否安全,或者是否有其他一些我可以利用的机制?我为复制场景而编写的代码(与fiddle中的相同):HTML{{item.name}}ChangeJSvarmyApp=angular.module('myApp',[]);functio

javascript - 如何获取 Webpack 中每个 block 包含的所有文件(或模块)的列表

似乎无法在webpack中找到任何调试选项或插件来显示确切进入block的内容。为什么我需要这个?我注意到这样的情况,代码拆分字面上使所有内容都变得更大,然后将所有内容都放在一个文件中。这有点违反直觉,因为我不认为来自webpack的引导代码有那么重要;我怀疑这可能是缩小/重复数据删除,但在不知道哪些模块实际上被分块在一起的情况下,很难进行一些孤立的测试来确认。我的构建过程使用gulp;如果这有什么不同的话。 最佳答案 Webpack5.x:$webpack--stats-modules-space999在Webpack5.x之前:

javascript - 在没有 $scope 的情况下使用 $watch( Controller 作为语法)

在Angular1.3中,可以使用this.foo='bar'代替$scope.foo='bar'。现在,如何在没有$scope的情况下使用$watch? 最佳答案 在使用controlleras语法时,有几个选项可以避免必须使用$watch。以下示例摘自blogpostIwroteaboutavoiding$scope.使用ng-changeIfyouhaveawatchsetuptolistenforapropertychangethatoriginatesfromaformfield,thenng-changeisyourbe

javascript - 为什么嵌套一堆 block 会导致 JavaScript 中的堆栈溢出

代码{}在JavaScript中是完全合法的,因为它代表一个Block.但是,我注意到在Chrome*中嵌套很多block({{...}}):UncaughtRangeError:Maximumcallstacksizeexceeded为什么这里会发生堆栈溢出?这是一个codepen说明问题(jsfiddle崩溃)。在JSRoom提问时Zirak发现魔数(MagicNumber)在chrome上是3913block,在Firefox上是2555。什么被压入栈?为什么?(*)我已经检查过了,它也发生在IE和Firefox中更新:我已经检查过,但不可靠的是,IE能够避免堆栈溢出异常。它已经

javascript - Angular : Pass $scope variable as directive attribute

我试图将$scope变量值作为属性传递给自定义指令,但它不起作用。这是HTML代码:{{q.question}}指令是,这里是指令代码:app.directive('checkList',function(){return{restrict:'E',template:function(elem,attrs){console.log(attrs.name);return'YesNo'},link:function(scope,elem,attrs){}};})我正在记录属性attrs.name但我得到的值是"{{q.id}}"而不是q.id的实际值 最佳答案

javascript - 我应该使用 window.onload 还是脚本 block ?

我有一个javascript函数,它在调用时操纵DOM(添加CSS类等)。当用户更改表单中的某些值时将调用此方法。首次加载文档时,我想调用此函数来准备初始状态(在这种情况下,这比从服务器端将DOM设置为正确的初始状态更简单)。是使用window.onload来执行此功能更好还是在我需要修改的DOM元素之后有一个脚本block?对于这两种情况,为什么更好?例如:functionupdateDOM(id){//updatestheidelementbasedonformstate}我应该通过以下方式调用它吗:window.onload=function(){updateDOM("myEle

javascript - angular-google-maps TypeError : $scope. map.control.refresh 不是函数

我将angular-google-maps集成到我的cordova移动应用程序中。我想使用以下函数刷新map。functionrefreshMap(){$scope.map.control.refresh({latitude:$scope.location.T_Lat_Deg_W.value,longitude:$scope.location.T_Long_Deg_W.value})}但是出现错误angular.js:13540TypeError:$scope.map.control.refreshisnotafunctionatScope.refreshMap(mapControll

javascript - PeerJS/WebRTC 连接在快速 block 传输时失败

我正在使用PeerJS,但认为这个问题一般与WebRTC有关,希望您能帮助我:我正在尝试编写一个简单的点对点文件共享。我正在为PeerJS连接DataChannel使用serialisation:"none",因为我只发送纯ArrayBuffers.文件大小约为10mb,但我在发送更大的文件(30+mb)时遇到问题,例如在发送大约10-20个900mbzip文件的第一个block后,对等方之间的连接开始抛出Connectionisnotopen。您应该在发送消息之前监听“打开”事件。(在Sender端)我的设置:文件被拖放,Sender使用FileReader以64x1024字节的bl

javascript - Webpack:如何使用 CommonsChunkPlugin 将条目捆绑到多个公共(public) block ?

假设我有两个页面Page1和Page2,它们都使用一些库(vendor),如jquerybackbone我想将其提取为单个文件,然后我希望将共享模块(不包括vendor)提取到另一个文件中,这是webpack配置:functionlistFiles(srcpath){returnfs.readdirSync(srcpath).filter(function(file){returnfs.statSync(path.join(srcpath,file)).isDirectory();});}varcreateEntry=function(src){vardest={vendor:["ba

javascript - 在 JavaScript 中使用 block 的返回值

在我测试过的许多浏览器上,JavaScriptblock实际上会返回一个值。您可以在任何控制台中对其进行测试:for(vari=0;i“返回”值是最后一个平方数,即9!但由于我想这不是一个表达式,所以你不能这样做:for(vari=0;i那是行不通的。它给出+5,或者5,当然,因为它是一个单独的语句。将循环放在括号中显然是失败的,如果一个block在括号中(例如({f();r})-不起作用)它被视为一个对象并抛出语法错误。利用返回值的一种方法是使用eval:eval('for(vari=0;i但如果eval是唯一的解决方案,我显然不想使用它。有没有一种方法可以在不使用我缺少的eval的