小编Bal*_*zar的帖子

Ui-Router $ state.go()不刷新数据

我的Angular应用程序中有产品列表状态和产品编辑/添加状态.

产品列表数据加载到控制器中(我认为我不需要在状态配置中定义解析)从ngResource获取数据:

function InventoryListCtrl (myResource) {
  var vm = this;

  myResource.query(function (data) {
    vm.products = data;
  });
}
Run Code Online (Sandbox Code Playgroud)

在编辑控制器上,在我编辑产品后,我回到列表状态,如下所示:

vm.product.$update().$promise;
$state.go('productList');
Run Code Online (Sandbox Code Playgroud)

它不会始终使用新数据加载列表,它通常会在第一次运行时显示旧数据,然后在我进行第二次更新并手动返回列表状态后,它会在每次更新后开始刷新.

我试过这个,但也没有用:

vm.product.$update().$promise;
$state.go('productList', {}, { reload: true });
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

angularjs angular-ui-router

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

通过将a.localeCompare(b)切换为(a <b?-1:(a> b?1:0))进行400x排序加速

通过切换javascript排序函数

myArray.sort(function (a, b) {
  return a.name.localeCompare(b.name);
});
Run Code Online (Sandbox Code Playgroud)

myArray.sort(function (a, b) {
  return (a.name < b.name ? -1 : (a.name > b.name ? 1 : 0));
});
Run Code Online (Sandbox Code Playgroud)

我能够缩短在Chrome中对~1700元素阵列进行排序的时间,从1993毫秒到5毫秒.几乎是400倍的加速.不幸的是,这是以正确排序非英语字符串为代价的.

当我尝试进行排序时,显然我无法阻止我的UI阻塞2秒.有什么我可以做的,以避免可怕的缓慢localeCompare但仍然保持对本地化字符串的支持?

javascript sorting google-chrome

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

Gulp.js事件流合并顺序

我试图将css和scss文件合并到我的构建目录中的main.css文件中.它的工作,但不是正确的顺序.scss文件中的样式属性需要位于main.css文件的底部,因此它们会覆盖其余部分.

我的Gulp任务看起来像这样:

    //CSS
gulp.task('css', function () {
    var cssTomincss = gulp.src(['dev/css/reset.css', 'dev/css/style.css','dev/css/typography.css',    'dev/css/sizes.css']);

    var cssFromscss = gulp.src(['dev/css/*.scss'])
        .pipe(sass());

    return es.merge(cssTomincss, cssFromscss)
        .pipe(concat('main.css'))
        .pipe(minifyCSS())
        .pipe(gulp.dest('build/css'))
});
Run Code Online (Sandbox Code Playgroud)

我首先用变量定义源代码.我正在使用gulp-sass插件将scss文件转换为普通的css(.pipe(sass)),然后将两者与es.merge函数合并并将它们连接到main.css中.

问题是,.scss文件的样式属性最终会出现在main.css文件的顶端.我需要他们在底部.所以他们需要在底部连接起来.

有关如何做到这一点的任何线索?

javascript concatenation event-stream gulp gulp-sass

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

DataTables设置默认排序列并设置不可排序的列

一旦页面加载,是否可以将默认列设置为排序?我想对我网站上的不同表使用一个数据表调用.是否可以添加一个th类来实现这一目标?

我也想在某些列上禁用排序,因为我正在寻找一个数据表调用来做所有事情,是否有一个类我可以添加到th将使它无法解决?

这是我所谓的dataTable脚本

if (jQuery().dataTable) {
    $('#table-list-items').dataTable({
        "fnDrawCallback" : function () {
        },
        "aLengthMenu": [
        [10, 15, 25, 50, 100, -1],
        [10, 15, 25, 50, 100, "All"]
        ],
        "iDisplayLength": 25,
        "oLanguage": {
            "sLengthMenu": "_MENU_ Records per page",
            "sInfo": "_START_ - _END_ of _TOTAL_",
            "sInfoEmpty": "0 - 0 of 0",
            "oPaginate": {
                "sPrevious": "Prev",
                "sNext": "Next"
            }
        },
        "aoColumnDefs": [{
            'bSortable': true,
            'aTargets': [0]
        }]
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery datatables

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

AWS CLI CloudFront使所有文件无效

我试图使整个静态网站无效.以下命令似乎没有失效,/index.html并给出了一个奇数输出的项目,如下所示.这个AWS CLI行为是正常还是我遗漏了什么?谢谢!

aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths /*
Run Code Online (Sandbox Code Playgroud)

输出:

/index.html

command-line-interface amazon-web-services amazon-cloudfront

25
推荐指数
3
解决办法
5983
查看次数

显示键盘后滚动到FlatList的末尾

我在KeyboardAvoidingView中有一个FlatList.当键盘显示时,我想滚动到FlatList的末尾.

我正在侦听被触发的'keyboardDidShow'事件,但是由于FlatList在调用scrollToEnd后没有滚动到最后,因此可能会过早触发.

我已经查看了KeyboardAvoidingView的onLayout事件,但只是设置onLayout事件来触发一个函数似乎阻止了KeyboardAvoidingView在显示键盘时调整它的大小.

<KeyboardAvoidingView behavior='padding' style={{ flex: 1}} onLayout={this._scrollEnd}>
Run Code Online (Sandbox Code Playgroud)

码:

import React from 'react';
import {Image, Linking, Platform, ScrollView, StyleSheet, Text, TouchableOpacity, View, Button, Alert, FlatList, TextInput, KeyboardAvoidingView, Keyboard} from 'react-native';
import { MonoText } from '../components/StyledText';

export default class HomeScreen extends React.Component {
  constructor() {
    super();
    this.state = {
      messages: getMessages()
    };

    this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this._scrollEnd);
    this.keyboardDidShowListener = Keyboard.addListener('keyboardDidHide', this._scrollEnd);
  }

  _scrollEnd = (evt) => {
    this.refs.flatList1.scrollToEnd();
  }

  render() {
    return (
      <KeyboardAvoidingView behavior='padding' style={{ flex: 1}} >
        <FlatList …
Run Code Online (Sandbox Code Playgroud)

react-native

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

将大数组传递给节点子进程

我想在大型阵列上进行复杂的CPU密集型工作.理想情况下,我想将此传递给子进程.

var spawn = require('child_process').spawn;

// dataAsNumbers is a large 2D array
var child = spawn(process.execPath, ['/child_process_scripts/getStatistics', dataAsNumbers]);

child.stdout.on('data', function(data){
  console.log('from child: ', data.toString());
});
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,node会给出错误:

产生E2BIG

我偶然发现了这篇文章

因此,将数据传递给子进程似乎是要走的路.我的代码现在是:

var spawn = require('child_process').spawn;

console.log('creating child........................');

var options = { stdio: [null, null, null, 'pipe'] };
var args = [ '/getStatistics' ];
var child = spawn(process.execPath, args, options);

var pipe = child.stdio[3];

pipe.write(Buffer('awesome'));

child.stdout.on('data', function(data){
  console.log('from child: ', data.toString());
});
Run Code Online (Sandbox Code Playgroud)

然后在getStatistics.js中:

console.log('im inside child');

process.stdin.on('data', function(data) {
  console.log('data is ', …
Run Code Online (Sandbox Code Playgroud)

javascript mongodb node.js

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

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

如何使用Passport.js访问OAuth的状态参数?

我正在使用Passport.js进行身份验证,根据Google的OAuth2文档,我传入了一个状态变量:

app.get('/authenticate/googleOAuth', function(request, response) {
  passport.authenticate('google', {
    scope:
    [
      'https://www.googleapis.com/auth/userinfo.profile',
      'https://www.googleapis.com/auth/userinfo.email'
    ],
    state: { blah: 'test' }
  })(request, response);
});
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法在以后访问该变量:

passport.use(new googleStrategy(
{
    clientID: '...',
    clientSecret: '...',
    callbackURL: '...',
    passReqToCallback: true
},
function(request, accessToken, refreshToken, profile, done) {
  console.log('state: ' + request.query.state);
  login(profile, done);
}));
Run Code Online (Sandbox Code Playgroud)

request.query.state未定义.request.param("state")也不起作用.

如何在身份验证回调后获取该变量?

authentication passport.js

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

更改占位符的font-family

输入字段是否可以有一个字体系列和它的占位符?

我试图在CSS中使用已定义的@ font-face更改输入占位符的font-family,但它不起作用

CSS

.mainLoginInput::-webkit-input-placeholder { 
  font-family: 'myFont', Arial, Helvetica, sans-serif;
}

.mainLoginInput:-moz-placeholder { 
  font-family: 'myFont', Arial, Helvetica, sans-serif;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<input class="mainLoginInput" type="text" placeholder="Username"  />
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

css input placeholder stylesheet font-face

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