小编sab*_*ker的帖子

为什么空白的Ember对象的保留大小为~500

我尝试使用创建Ember对象

c = Em.Object.create();
Run Code Online (Sandbox Code Playgroud)

并检查内存转储以查看此内容

在此输入图像描述

它暗示了24的浅记忆并保留了524的记忆.我的问题是,如果我在控制器中保留大约500个这样的Ember对象,这是内存方面的问题.

那么让我们说我在阵列中有一个500个Ember对象的控制器content,那么momory转储看起来像这样:

在此输入图像描述

这里数组中的每个项目都有524个保留大小,因此控制器的保留大小为268088.这真的是个问题吗?

我怀疑所有Ember对象是否指的是每个对象引用的一些共同对象的相同524字节.

javascript memory google-chrome-devtools ember.js

16
推荐指数
1
解决办法
1634
查看次数

条件语句中的Javascript执行

window.onresize = window.onload = function(){
  if(window.innerWidth < 480){
    document.getElementById('alert').onclick = function(){
      alert('<480');
    };
    //large amounts of code
  }
  if(window.innerWidth >= 480){
    document.getElementById('alert').onclick = function(){
      alert('>=480');
    };
    //large amounts of code
  }
}
Run Code Online (Sandbox Code Playgroud)
<button id="alert">Alert</button>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,如果window.innerWidth大于480,那么代码里面的代码首先if会被Javascript引擎处理吗?第二个块将被执行,我将在内存中分配功能并分配给#alert.onclick.问题是function内部其他(错误)条件是否存在于内存中,因为变量可能像悬挂引用一样,或者只有当条件为真时才会引导该函数?

这是为了理解在窗口加载时处理的初始代码量是否有任何优势,如果移动代码在这样的条件语句中并且相当大..

我很高兴看到有关函数如何被引导和堆栈分配以及何时分配的任何文档.

javascript if-statement v8 function

12
推荐指数
1
解决办法
892
查看次数

角度安全导航操作员,动态属性和括号表示法

Angular 2有一个" 安全导航操作符 ",允许模板引用组件中可能未定义的子属性.

有没有办法使用动态属性和括号表示法?例如,

<input [type]="text" [ngModel]="formValues?[control]">
Run Code Online (Sandbox Code Playgroud)

control从我的组件另一个变量告诉形成价值的使用和formValues加载异步的模板,以便有可能为空.

angular2-template angular

10
推荐指数
1
解决办法
737
查看次数

在输入数字字段上显示前导零

我有两个input代表小时和分钟的字段.

<input type="number" min="0" max="24" step="1" value="00" class="hours">
<input type="number" min="0" max="0.60" step="0.01" value="00" class="minutes">
Run Code Online (Sandbox Code Playgroud)

显示为:

0:0
Run Code Online (Sandbox Code Playgroud)

要么:

5:3
Run Code Online (Sandbox Code Playgroud)

有没有办法将其显示为:

00:00
Run Code Online (Sandbox Code Playgroud)

要么:

05:03
Run Code Online (Sandbox Code Playgroud)

即24小时数据格式(在人们建议之前,我不能使用type ="time").

javascript css jquery html5 css3

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

如何在DataTable中使用带有命令和参数的Primeng Menu?

Primeng 的 MenuItem 有一个名为 command 的参数,该参数是单击其项目时要执行的函数。https://www.primefaces.org/primeng/#/steps 中提供了一个使用此示例以向用户提供反馈。

command: (event: any) => {
                this.activeIndex = 0;
                this.msgs.length = 0;
                this.msgs.push({severity:'info', summary:'First Step', detail: event.item.label});
            }
Run Code Online (Sandbox Code Playgroud)

但是,我想像这样使用 MenuItem 作为我的 Primeng DataTable 的列。

在此处输入图片说明

为此,我需要以这种方式使用我的菜单:

<p-column>
  <ng-template let-item="rowData"
      <p-menu #menu popup="popup" [model]="items"></p-menu>
      <button type="button" pButton icon="fa fa-list" label="Show" (click)="menu.toggle($event)"></button>
  </ng-template>
</p-column>
Run Code Online (Sandbox Code Playgroud)

获取“项目”和我点击的行以及其他类型的数据。

使用按钮我可以通过 onClick 传递项目和其他数据,但为此我需要为每个按钮创建一列。为了解决我想使用来自primeng的MenuItem的Menu。

问题是我找不到任何通过 MenuItem 中的命令传递参数的示例,而且我找不到方法来做到这一点。

如何使用带有 DataTable 的 MenuItem 来实现?

如果这是不可能的,我怎样才能实现相同的结果?

primeng angular primeng-datatable

7
推荐指数
3
解决办法
2万
查看次数

为什么使用"call"调用数组切片方法?

正如在这个问题中看到的那样

Function.prototype.bind = function(){ 
  var fn = this, args = Array.prototype.slice.call(arguments), object = args.shift(); 
  return function(){ 
    return fn.apply(object, 
      args.concat(Array.prototype.slice.call(arguments))); 
  }; 
};
Run Code Online (Sandbox Code Playgroud)

在这个例子中,为什么编码为

args = Array.prototype.slice.call(arguments)
Run Code Online (Sandbox Code Playgroud)

如果我这样做会没事的

args = arguments.slice();
Run Code Online (Sandbox Code Playgroud)

我只是想了解使用的任何具体原因 call

还有什么其他情况我们将不得不使用Array.prototype.slice.call(arguments)

javascript

5
推荐指数
2
解决办法
94
查看次数

管道操作符时如何返回可观察的`forkJoin`

在我拥有这个运行良好的解析器之前:

resolve() {
    return forkJoin(
        this.getData1(),
        this.getData2(),
        this.getData3()
    );
}
Run Code Online (Sandbox Code Playgroud)

现在我必须做一些实际上不起作用的事情:

  resolve() {
    return this.actions$
      .pipe(
        ofActionSuccessful(SomeSctonSuccess),
        forkJoin(
           this.getData1(),
           this.getData2(),
           this.getData3()
        )
      );
    }
Run Code Online (Sandbox Code Playgroud)

因为我遇到了这个错误:

“Observable<[any, any, any, any]>”类型的参数不可分配给“OperatorFunction”类型的参数。类型 'Observable<[any, any, any, any]>' 不匹配签名 '(source: Observable): Observable'。

任何想法如何解决?

现在我注意在发生forkJoin后返回我的唯一https://ngxs.gitbook.io/ngxs/advanced/action-handlersofActionSuccessful(SomeSctonSuccess)

rxjs angular ngxs

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

在 JavaScript 中嵌套 array.some()

我想知道 Array.some() 的嵌套使用。假设任务是确定数组中的三个数字之和是否等于给定值 x。我尝试了以下方法,但没有成功:

return myArray.some(function(num1){
    myArray.some(function(num2){
       myArray.some(function(num3){
           return num1 + num2 + num3 === x;
       });
    });
 });
Run Code Online (Sandbox Code Playgroud)

对此的任何见解都会有所帮助,包括为什么上述不起作用。

javascript

4
推荐指数
1
解决办法
5525
查看次数

对javascript上的数组感到困惑

我想基于另外两个数组创建下一个数组:

array1 = ['a', 'b']
array2 = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

我想创建下一个数组

newArray = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]]
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    var test1 = ['a', 'b'];
    var test2 = [1,2,3], arr1 = [], arr2 = [];

    for(var i = 0; i < test1.length; i++){
       arr1 = [];
       arr1.push(test1[i]);
      for(var x = 0; x < test2.length; x++){
        if(arr1.length > 1)
        	arr1.pop();
        arr1.push(test2[x])
        arr2.push(arr1);
        
      }
    }

console.log("arr1:",JSON.stringify(arr1), "arr2:" ,JSON.stringify(arr2));
Run Code Online (Sandbox Code Playgroud)

但它返回第二个数组的最后一个元素.

[['a',3], ['a',3], ['a',3], ['b',3], ['b',3], ['b',3]]
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

javascript arrays

3
推荐指数
1
解决办法
140
查看次数

为什么ehcache2.6包中没有"net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter"类?

我想尝试页面缓存.但是我找不到这个net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter课,所以我得到了一个错误class not found

我该怎么办?

<filter>
  <filter-name>SimplePageCachingFilter</filter-name>
  <filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
  </filter-class>
</filter>
Run Code Online (Sandbox Code Playgroud)

ehcache

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

如何阻止所有事件的传播

我想知道当它们到达某个元素时如何阻止所有类型事件的传播.

我曾想过

function stop(e){
    e.stopPropagation();
}
function stopEvents(el){
    var events = ['click', 'mousemove', ...];
    for(var i=0; i<events.length; ++i){
        el.addEventListener(events[i], stop, false);
    }
}
Run Code Online (Sandbox Code Playgroud)

有更聪明的方法吗?

看来,我的代码工作,但我想,不需要所有可能的事件列表的代码.

因为如果我写一个其他人可以用来向页面添加内容的GreaseMonkey模块,我不希望在该内容中生成的事件触发页面的事件监听器(假设他们不使用捕获).实际上我使用iframe解决了它,但问题仍然存在于学术目的

javascript dom javascript-events stoppropagation

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

在它之前爆炸后,提交<按钮>不起作用

我已经查看了stackoverflow几天,并没有我工作的东西.无论如何,在爆炸并向我的文档附加提交按钮后,按钮在单击时不会发出警报.

    $(document).ready(function() {
      alert('hi');
      $("#a").click(function() {
        $(".main, .topbar, button").toggle("explode");
        $('body').delay(8100).append("<img src='picture.png'> <form >  <input            type='text'></form><button id='submit'>submit</button>");
      });
      $("#submit").click(function() {
        alert('hi');

      });
    });
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='a'>button</button>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

html javascript jquery

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

如何使用angular模拟REST而不影响模板

我只想尝试角度.

我想得到一个项目列表并在模板中显示它,现在只是硬编码,并希望看到它如何与ajax一起工作.我没有休息服务器工作,并试图模拟ajax调用.

我刚尝试包括angular mock e2e,但是看起来它也get适用于模板,并引发错误Error: Unexpected request: GET views/main.html

有没有一种简单的方法可以模拟REST请求并让模板与平常一起工作ajax

这不是单元测试或e2e测试场景,更多是后端较少的开发.我在主应用程序上执行此操作而不是在测试中.

我的app.js看起来像这样

'use strict';

var app = angular
.module('sabithangularApp', [
        'ngResource', 'ngMockE2E'
    ]);
app.run(function ($httpBackend) {
    var tasks = [{...},{....},{...}
    ];

    $httpBackend.whenGET('/tasks').respond(tasks);

    $httpBackend.whenGET(/^\/templates\//).passThrough();
    //...
});
Run Code Online (Sandbox Code Playgroud)

和控制台中的错误看起来像

Error: Unexpected request: GET views/main.html
No more request expected
    at $httpBackend (http://127.0.0.1:9000/bower_components/angular-mocks/angular-mocks.js:1177:9)
    at sendReq (http://127.0.0.1:9000/bower_components/angular/angular.js:7967:9)
    at $http.serverRequest (http://127.0.0.1:9000/bower_components/angular/angular.js:7708:16)
    at wrappedCallback (http://127.0.0.1:9000/bower_components/angular/angular.js:11100:81)
    at wrappedCallback (http://127.0.0.1:9000/bower_components/angular/angular.js:11100:81)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:11186:26
    at Scope.$eval (http://127.0.0.1:9000/bower_components/angular/angular.js:12175:28)
    at Scope.$digest (http://127.0.0.1:9000/bower_components/angular/angular.js:12004:31)
    at Scope.$apply (http://127.0.0.1:9000/bower_components/angular/angular.js:12279:24)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:1382:15 
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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