小编a d*_*ren的帖子

你可以在返回之前解决angularjs的承诺吗?

我正在尝试编写一个返回promise的函数.但有时候请求的信息是立即可用的.我想将它包装在一个承诺中,以便消费者不需要做出决定.

function getSomething(id) {
    if (Cache[id]) {
        var deferred = $q.defer();
        deferred.resolve(Cache[id]); // <-- Can I do this?
        return deferred.promise;
    } else {
        return $http.get('/someUrl', {id:id});
    }
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

somethingService.getSomething(5).then(function(thing) {
    alert(thing);
});
Run Code Online (Sandbox Code Playgroud)

问题是回调不会针对预解析的承诺执行.这是合法的事吗?有没有更好的方法来处理这种情况?

promise angularjs

122
推荐指数
3
解决办法
8万
查看次数

Angular2等待多个承诺完成

我正在使用Ionic平台的SQLStorage.remove函数返回一个promise.在我的代码中,我需要删除多个值.当这些都完成后,我需要执行一些代码.

我如何等待所有这些然后执行回调函数?

码:

removeAll() {

  this.storage.remove(key1);
  this.storage.remove(key2);
  this.storage.remove(key3);

}
Run Code Online (Sandbox Code Playgroud)

嵌套所有是一个坏习惯,所以我正在寻找一个体面的解决方案:)

removeAll() {

  return this.storage.remove(key1).then(() => {

    this.storage.remove(key2).then(() => {

      this.storage.remove(key3);

    });

  });

};
Run Code Online (Sandbox Code Playgroud)

javascript promise ionic2 angular

38
推荐指数
3
解决办法
5万
查看次数

React:无状态功能组件中的PropTypes

在React中,我编写了一个无状态功能组件,现在想要为它添加Prop Type验证.

List 零件:

import React from 'react';
import PropTypes from 'prop-types';

function List(props) {
  const todos = props.todos.map((todo, index) => (<li key={index}>{todo}</li>));
  return (<ul></ul>);
}

List.PropTypes = {
  todos: PropTypes.array.isRequired,
};

export default List;
Run Code Online (Sandbox Code Playgroud)

App组件,渲染List:

import React from 'react';
import List from './List';

class App extends React.Component {
  constructor() {
    super();
    this.state = {
      todos: '',
    };
  }

  render() {
    return (<List todos={this.state.todos} />);
  }
}

export default App;
Run Code Online (Sandbox Code Playgroud)

正如你所看到的App,我正在传递this.state.todos给你List.既然 …

reactjs react-proptypes

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

修剪javascript?这段代码在做什么?

我在JavaScript中寻找一个不存在的修剪函数,Googling上的一些代码建议使用:

function trimStr(str) {
  return str.replace(/^\s+|\s+$/g, '');
}
Run Code Online (Sandbox Code Playgroud)

我想知道它是如何str.replace(/^\s+|\s+$/g, '') 工作的.我知道这是某种形式的正则表达,但不知道它在做什么.

javascript regex trim

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

如何从Android App中删除Firebase用户?

我正在尝试在我的Android应用程序中编写删除用户方法,但每次执行它时都会遇到一些问题.当用户按下活动上的删除帐户按钮时,将执行此方法.我的应用与FirebaseUI Auth配合使用.

这是方法:

private void deleteAccount() {
    Log.d(TAG, "ingreso a deleteAccount");
    FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
    final FirebaseUser currentUser = firebaseAuth.getCurrentUser();

    currentUser.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Log.d(TAG,"OK! Works fine!");
                startActivity(new Intent(Main3WelcomeActivity.this, Main3Activity.class));
                finish();
            } 
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.e(TAG,"Ocurrio un error durante la eliminación del usuario", e);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

1)当我执行该功能时,屏幕上会出现一个Smart Lock消息,用户再次登录.以下是此消息的屏幕截图.

Smartlock消息

2)在其他情况下,当用户登录很长时间时,该函数抛出一个Exception,如下所示:

06-30 00:01:26.672 11152-11152/com.devpicon.android.firebasesamples E/Main3WelcomeActivity: Ocurrio un error durante la …
Run Code Online (Sandbox Code Playgroud)

android firebase-authentication firebase-realtime-database firebaseui

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

对比度拉伸和直方图均衡之间的差异

我想知道对比度拉伸直方图均衡之间的区别.

我已经尝试过使用OpenCV并观察结果,但我仍然没有理解这两种技术之间的主要区别.洞察力将是非常需要的帮助.

histogram stretching contrast

12
推荐指数
4
解决办法
2万
查看次数

AngularJS子目录路由不起作用,应用了<base>标记

我有一个非常简单的AngularJS模板,我正在尝试让路由工作,但是当我加载页面时,我只是看到了我的H1标签index.html.

我的应用程序位于子目录中/angular-route/,并且我知道部分存在,我可以访问/angular-route/partials/interest.html并且页面呈现正常.

我错过了一些非常基本的东西吗?

<html>
<head ng-app="myApp">
    <title>AngularJS Routing</title>
    <base href="/angular-route/" />
</head>
<body>

<h1>AngularJS Routing</h1>

<div ng-view></div>

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script>

<script>
    'use strict';

    var myApp = angular.module('myApp', []).
      config(['$routeProvider', function($routeProvider) {
        $routeProvider.
            when('/interest', {
                templateUrl: 'partials/interest.html',   
                controller: 'InterestCtrl'
            }).
            when('/catalogue', {
                templateUrl: 'partials/catalogue.html', 
                controller: 'CatalogueCtrl'
            }).
            otherwise({redirectTo: '/interest'});
    }]);

    myApp.controller('InterestCtrl', function($scope, $routeParams) {
        console.log('InterestCtrl');
    });
    myApp.controller('CatalogueCtrl', function($scope, $routeParams) {
        console.log('CatalogueCtrl');
    });
</script>
Run Code Online (Sandbox Code Playgroud)

routing angularjs

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

带导航栏固定顶部和Bootstro的Bootstrap

我正在使用Bootstrap + Bootstro,但无法使顶部导航栏落后于叠加层.

http://jsfiddle.net/NJsYw/5/(点击教程)

<div id="wrap">

  <!-- Fixed navbar -->
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="brand" href="#">Project name</a>
        <div class="nav-collapse collapse">
          <ul class="nav">
            <li><a href="#" id='tutorial'>Tutorial</a></li>
              </ul>
            </li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>
  </div>

  <!-- Begin page content -->
  <div class="container">
    <div class="page-header">
    </div>
    <p class="lead bootstro" data-bootstro-title='Title' data-bootstro-content="Description." data-bootstro-width="400px" data-bootstro-placement='bottom' data-bootstro-step='0'>Pin a fixed-height footer to the bottom of the viewport in desktop …
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap bootstro

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

R - xlsx包 - 如何在不改变边框的情况下添加单元格颜色

我正在尝试使用布局将表导出到Excel.我发现了很多关于xlsx包的信息以及如何使用它但是我的脚本仍然有问题.

我不知道如何用颜色填充单元格,而不修改以前添加的边框.

作为一个例子,我创建了一个表(Test.txt),我想为列"Mass1"的单元格着色,其值大于30.

这是我写的脚本:

library(xlsx)

Test<-read.table("Test.txt",sep="\t", dec=".", header = TRUE)

wb<-createWorkbook()
sheet <- createSheet(wb, "Sheet 1")

cs1 <- CellStyle(wb) + Alignment(horizontal="ALIGN_CENTER", vertical="VERTICAL_CENTER") + Border(color="black", position=c("TOP", "RIGHT" , "LEFT","BOTTOM"),pen=c("BORDER_MEDIUM","BORDER_MEDIUM","BORDER_MEDIUM","BORDER_MEDIUM"))
cs2 <- CellStyle(wb) + Border(color="black", position=c("LEFT","RIGHT","TOP", "BOTTOM"),pen=c("BORDER_THIN","BORDER_THIN","BORDER_THIN","BORDER_THIN"))

addDataFrame(Test, sheet, row.names = F, colnamesStyle=cs1, colStyle=list(`1`=cs2, `2`=cs2, `3`=cs2))

for(i in 1:nrow(Test) ){ 
  if(Test[i,2]>30){
    Row<-getRows(sheet, rowIndex=(i+1))
    Cell<-getCells(Row,colIndex = 2)
    cs3<- CellStyle(wb) + Fill(foregroundColor="lightblue", backgroundColor="lightblue", pattern="SOLID_FOREGROUND")    
    setCellStyle(Cell[[1]], cs3)
  }
}

saveWorkbook(wb, "Test.xlsx")
Run Code Online (Sandbox Code Playgroud)

我的麻烦是细胞正确着色但底部边框消失.我知道我可以在我的cs3样式中添加边框,但在我的真实脚本中,我的彩色单元格的底部边框并不总是相同的(有些是薄的,有些是中等的).

如何在不修改这些边框的情况下考虑先前创建的边框以添加填充颜色?我想getCellStyle函数可以帮助但是当我应用这个函数时,结果是"正式类jobjref"而不是"8列表",因为我的cs3样式...

excel r xlsx

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

Angular 4.x:如何在ngOnInit()中加载机会。

我是angular 4.x的新手,我想在ngOnInit()函数中加载change.js。我该怎么做,我尝试了几件事,但没有成功:

这是我的代码:

import { Component, OnInit, Input } from '@angular/core';

...
.....
    declare var chance: any;

    import 'src/assets/js/chance.js';
    ....
    ....
    export class ComposantComponent implements OnInit {
    ....
    ....
          ngOnInit() {
            this.http.get("src/app/datas/data.json")
              .subscribe((data)=> {
                setTimeout(()=> {
                  this.data = data.json();
                  this.data.forEach(function(row, index) {
                    row.checked = false;
                     // use chance here ... 
                  });

                  console.log(this.data[0]);
                  // console.log(chance);

                }, 500);
              });
          }
    ....
    ....
    ....
    }
Run Code Online (Sandbox Code Playgroud)

你能帮忙吗?

typescript angular

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