我的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)
我错过了什么?
通过切换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但仍然保持对本地化字符串的支持?
我试图将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文件的顶端.我需要他们在底部.所以他们需要在底部连接起来.
有关如何做到这一点的任何线索?
一旦页面加载,是否可以将默认列设置为排序?我想对我网站上的不同表使用一个数据表调用.是否可以添加一个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) 我试图使整个静态网站无效.以下命令似乎没有失效,/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
我在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) 我想在大型阵列上进行复杂的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) 我正在使用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")也不起作用.
如何在身份验证回调后获取该变量?
输入字段是否可以有一个字体系列和它的占位符?
我试图在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)
我该如何解决这个问题?
javascript ×4
angularjs ×1
css ×1
datatables ×1
enzyme ×1
event-stream ×1
font-face ×1
gulp ×1
gulp-sass ×1
input ×1
jquery ×1
mongodb ×1
node.js ×1
passport.js ×1
placeholder ×1
react-native ×1
reactjs ×1
sorting ×1
stylesheet ×1