小编Emm*_*mma的帖子

计算Angular的$ digest周期

TL;博士:

我想在页面加载时使用角度触发css动画.有没有办法计算角度的消化周期,例如控制器或指令?


长版:

我有一些角度动画,我想在页面加载时运行,使用ng-enter,ng-leave,ng-move等...使用ng-repeat指令.

从1.3.6开始,我知道角度等待应用任何动画,直到2个摘要周期发生,所以这些动画根本不会发生,因为数据(几乎总是)加载到我的第一个摘要周期的视图中应用.(酱:https://docs.angularjs.org/api/ngAnimate#css-staggering-animations)

我想知道是否有一些方法可以计算摘要周期并触发动画,或者在第二个摘要周期后加载数据?

此外,如果我等到2个摘要周期,是否有可能在某些情况下第二个周期不会发生,这意味着我的数据不会加载到视图中?如果是这种情况,有没有办法可以保证每次至少会发生2个消化周期?

作为临时修复,我使用$ timeout在500ms后加载我的数据,但我知道这是一个非常糟糕的主意.


相关代码:

(由于该项目的NDA,改变了某些事物的名称)

HTML:

<div ng-repeat="pizza in pizzas" class="za" ng-click="bake(pizza)"></div>
Run Code Online (Sandbox Code Playgroud)

css/sass(为简洁起见,删除了浏览器前缀):

.za {
  //other styles

  &.ng-enter,
  &.ng-leave,
  &.ng-move {
    transition: all 1s $slowOut;
    transform: translate(1000px, 0px) rotateZ(90deg);
  }
  &.ng-enter,
  &.ng-leave.ng-leave-active
  &.ng-move, {
    transform: translate(1000px, 0px) rotateZ(90deg);
  }
  &.ng-enter.ng-enter-active,
  &.ng-leave,
  &.ng-move.ng-move-active {
    transform: translate(0, 0) rotateZ(0deg);
  }
  &.ng-enter-stagger,
  &.ng-leave-stagger,
  &.ng-move-stagger {
    transition-delay: 2s;
    transition-duration: 0s;
  }
}
Run Code Online (Sandbox Code Playgroud)

JS:

// inside a controller
timeout(function() {
  scope.pizza = [ // actually …
Run Code Online (Sandbox Code Playgroud)

javascript animation cycle digest angularjs

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

节点js - 在上传时配置aws s3图像

到目前为止有什么工作:

使用此功能,我正在拍摄上传到我的服务器的图像,将它们发送到aws S3存储桶,然后从我的机器中删除它们.这一切都很有效.

问题:

如何配置图像,以便亚马逊将其作为公共服务并使用适当的内容类型(image/jpeg或image/png)?现在它默认为private和(application/octet-stream).

这是我可以在节点中配置的东西吗?或者我需要在我的aws控制台中这样做吗?

function sendFileToAmazon(file) {
    var s3bucket = new AWS.S3({
      params: {Bucket: 'BUCKET NAME'}
    });

    var params = {Key: file.name, Body: ''};

    fs.readFile(file.path, function(err, data) {
      if (err) throw err;
      params.Body = data;

      s3bucket.putObject(params, function(errBucket, dataBucket) {
        if (errBucket) {
          console.log("Error uploading data: ", errBucket);
        } else {
          console.log(dataBucket);
          deleteFileFromTmp(file);
        }
      });
    });
  }
Run Code Online (Sandbox Code Playgroud)

configuration image-uploading amazon-s3 amazon-web-services node.js

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

如果touchmove fires,取消touchend

我正在构建一些主要用于平板电脑的东西,用户可以点击屏幕上的项目并应用它.这是我到目前为止:

问题:

  1. 我想使用触摸事件来删除类并在触摸端添加类(以使其更快).
  2. 如果用户滑动(touchmoves),我不希望它做任何事情.

我尝试过很多东西,但都没有.我尝试过的最简单的(失败的)是这样的:

var dragging = false;

$(".items").on("touchmove", function(){
      dragging = true;
});

$('.items').on("click touchend", function(event){
    if (dragging = true){
    }
    else{
    $('.items').removeClass('selected');
    $(this).addClass('selected');
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery click touch-event touchmove

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

javascript预加载器/进度/百分比

我无法找到有关如何制作javascript(或jquery)进度条的任何好信息,其中包含告诉您百分比的文本.

我不想插件,我只想知道它是如何工作的,这样我就可以根据我的需要进行调整.如何预加载图像并获取预加载图像数量的变量.另外,如何根据已加载的图像数量更改html/css和/或调用函数?

javascript jquery preloader image-preloader progress-bar

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

虽然循环,但额外循环即使条件为假

我正在使用javascript,但我正在寻找可能适用于多种语言的通用解决方案.

我想要一个比它应该运行一次的while循环.

例如(假设变量如上定义):

while (x != ">") {
    i++;
    tempStr += x;
    x = text[i];
}
Run Code Online (Sandbox Code Playgroud)

所以上面代码的输出将tempStr是最后一个字符">".

要记住的重要一点是,我不只是想做这样的事情:

while (x != ">") {
    i++;
    tempStr += x;
    x = text[i];
}
tempStr += x;
Run Code Online (Sandbox Code Playgroud)

上面只是一个例子,在条件为假之后运行while循环一个最后一个循环可能很方便.虽然我不能与你分享我的实际代码(出于法律原因),但要知道上述内容不适合我想到的应用程序.

可能无法做我想做的事情,如果是这样,请告诉我:)

javascript loops cycle while-loop conditional-statements

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

www.text在Unity3D中返回奇怪的值(C#)

我正在使用Unity 3D的WWW来发出http请求:http://docs.unity3d.com/ScriptReference/WWW.html

似乎无论我试图访问什么样的数据,它只会返回: 每次.我已经尝试过json文件,我尝试过只生成一个字符串的php.我似乎无法访问服务器上的值.

C#:

public string url = "http://www.onelittledesigner.com/data.php";

IEnumerator Start() {
    WWW www = new WWW(url);
    yield return www;

    if (!string.IsNullOrEmpty(www.error)) {
        Debug.Log(www.error);
    } else {
        Debug.Log(www.text);
    }

}
Run Code Online (Sandbox Code Playgroud)

PHP:

<?php
  echo "textiness";
?>
Run Code Online (Sandbox Code Playgroud)

注意: 我已成功使用www.texture将图像从服务器中拉出.但是,www.text似乎不起作用.

c# http unity-game-engine get-request

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

Angular orderBy:'timestamp'把事情放错了

我想做的事:

获取一个对象数组,每个对象以object.timestamp毫秒为单位,并从最新到最旧排序.

问题:

Angular的orderBy似乎没有按正确的顺序排列.以下时间戳按以下顺序排列:

  1. 1416187808218 - // Nov/16/2014 5:30:PM
  2. 1416187881192 - // Nov/16/2014 5:31:PM
  3. 1416189118263 - // Nov/16/2014 5:51:PM
  4. 1416189138827 - // Nov/16/2014 5:52:PM
  5. 1416130064119 - // Nov/16/2014 1:27:AM

正确/期望的顺序显然是:

  1. 1416189138827 - // Nov/16/2014 5:52:PM
  2. 1416189118263 - // Nov/16/2014 5:51:PM
  3. 1416187881192 - // Nov/16/2014 5:31:PM
  4. 1416187808218 - // Nov/16/2014 5:30:PM
  5. 1416130064119 - // Nov/16/2014 1:27:AM

所以它4, 3, 2, 1, 5应该是显而易见的,1, 2, 3, 4, 5


相关代码:

HTML:

<div class="cardWrapper" ng-repeat="card in cards | orderBy:'timestamp'">
  various child …
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting angularjs angularjs-orderby

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

如何在上传之前在浏览器中删除图像元数据(javascript)

我将图像上传到节点js服务器,并将它们发送到AWS S3以便在我的站点上使用.在iOS设备上拍摄的图像有时会在浏览器中侧向显示,我已经发现它是由于iOS附加到每个图像的一些元数据,包括捕获图像时手机的方向.在某些浏览器(包括OSX上的Chrome)中,似乎所有以纵向拍摄的图像都会在侧面翻转.

我能够在节点中剥离元数据并上传到亚马逊,但是当它们到达节点服务器时,图像仍然是侧面的.

似乎最有效的解决方案是在客户端选择图像文件时剥离元数据,并以正确的方向上传它们,但是我意识到也可以检测元数据方向并相应地从节点服务器翻转图像.

翻转服务器端的问题是:1.性能太昂贵.2.在上传之前,客户端仍会在浏览器预览中看到侧面图像.

TL; DR:

所以我只是想知道是否有人可以指出我正确的方向如何从浏览器中的图像中删除元数据,同时图像正在显示给用户?

谢谢<3

javascript metadata image ios

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

substr给出错误的价值 - javascript

出于某种原因,当我执行以下操作时:

var input = 'focus name (tag1 tag2 OTHER,STUFF) focus 2 (MORE)';
var openParen = input.indexOf('(');
var closeParen = input.indexOf(')');
var parenStr = input.substr(openParen + 1, closeParen - 1);
Run Code Online (Sandbox Code Playgroud)

我期待parenStr相等"tag1 tag2 OTHER,STUFF".

相反,我得到它"tag1 tag2 OTHER,STUFF) focus 2 ".任何人都可以向我解释这个吗?我觉得我疯了哈哈,我试过手动输入:

input.substr(openParen + 1, 32)
Run Code Online (Sandbox Code Playgroud)

但它给出了完全相同的结果.我之前使用过.substr()很多次,之前从未遇到过这种错误,我一定会遗漏一些东西.

javascript string substr

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