我想从AngularJS到node.js服务器做一个简单的多部分表单帖子,表单应该在一个部分包含一个JSON对象,在另一个部分包含一个图像,(我目前只发布带有$ resource的JSON对象)
我想我应该从input type ="file"开始,但后来发现AngularJS无法绑定到那个..
我能找到的所有例子都是用于拖放jQuery插件的拖放.我想要一个简单的上传一个文件.
我是AngularJS的新手,对编写我自己的指令感到不舒服.
我正在使用Passport.js进行身份验证(本地策略)并使用Mocha和Supertest进行测试.
如何使用Supertest创建会话并进行经过身份验证的请求?
我想在AngularJS中使用socket.io.我找到了以下工厂:
app.factory('socket', function ($rootScope) {
var socket = io.connect();
return {
on: function (eventName, callback) {
socket.on(eventName, function () {
var args = arguments;
$rootScope.$apply(function () {
callback.apply(socket, args);
});
});
},
emit: function (eventName, data, callback) {
socket.emit(eventName, data, function () {
var args = arguments;
$rootScope.$apply(function () {
if (callback) {
callback.apply(socket, args);
}
});
})
}
};
Run Code Online (Sandbox Code Playgroud)
它在控制器中使用如:
function MyCtrl($scope, socket) {
socket.on('message', function(data) {
...
});
};
Run Code Online (Sandbox Code Playgroud)
问题是每次访问控制器时都会添加另一个侦听器,因此在收到消息时会多次处理.
什么是将socket.io与AngularJS集成的更好策略?
编辑:我知道我可以在工厂中没有返回任何内容并在那里进行监听,然后在控制器中使用$ rootScope.$ broadcast和$ scope.$ on,但它看起来不是一个好的解决方案.
EDIT2:加入工厂
init: …
Run Code Online (Sandbox Code Playgroud) 我写了一个非常简单的函数,从给定的URL下载图像,调整大小并上传到S3(使用'gm'和'knox'),我不知道我是否正在正确地读取流到缓冲区.(一切正常,但这是正确的方法吗?)
另外,我想了解一下事件循环,我怎么知道函数的一次调用不会泄漏任何东西或者将'buf'变量更改为另一个已经运行的调用(或者这种情况是不可能的,因为回调是匿名的功能?)
var http = require('http');
var https = require('https');
var s3 = require('./s3');
var gm = require('gm');
module.exports.processImageUrl = function(imageUrl, filename, callback) {
var client = http;
if (imageUrl.substr(0, 5) == 'https') { client = https; }
client.get(imageUrl, function(res) {
if (res.statusCode != 200) {
return callback(new Error('HTTP Response code ' + res.statusCode));
}
gm(res)
.geometry(1024, 768, '>')
.stream('jpg', function(err, stdout, stderr) {
if (!err) {
var buf = new Buffer(0);
stdout.on('data', function(d) {
buf = Buffer.concat([buf, d]);
}); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Yeoman为AngularJS设置开发环境,我根据说明安装了Yeoman:sudo npm install -g yo bower grunt-cli generator-angular
我正在生成一个新的应用程序yo angular
.
生成应用程序后,运行karma start
会启动karma服务器,但运行grunt test
结果
Loading "grunt-karma.js" tasks...ERROR
>> TypeError: object is not a function
Warning: Task "karma" not found. Use --force to continue.
Aborted due to warnings.
Run Code Online (Sandbox Code Playgroud)
我该如何解决 ?
编辑:一些文件(从Yeoman新鲜生成)
Gruntfile.js:
'use strict';
var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet;
var mountFolder = function (connect, dir) {
return connect.static(require('path').resolve(dir));
};
module.exports = function (grunt) {
// load all grunt tasks
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
// configurable paths
var yeomanConfig = …
Run Code Online (Sandbox Code Playgroud) 学习Android测试有哪些好方法?我对学习Android测试感兴趣,我实际上并没有做TDD,而是将测试和代码编写在一起.
我在http://developer.android.com/tools/testing/index.html 和"Android应用程序测试指南"一书中阅读了所有信息并了解了基本概念,但几乎没有任何信息或示例我可以找.
这本书和示例非常基础,并展示了如何使用2个EditText框测试一个非常简单的活动,
我需要测试更复杂的东西,如IntentService,AsyncTask,ResultReceiver等.我有兴趣以TDD或几乎TDD方式构建我的应用程序.
有什么办法我可以学习那些东西(书籍,博客,例子......)或Android测试是非常罕见的吗?
我有一个地址的文本输入字段,每当输入地址并单击输入字段旁边的搜索按钮时,我对地址进行地理编码并将输入文本替换为地理编码器的结果.我还设置了范围变量'addressOk'.
是否可以根据这个特定的表单输入字段无效,$scope.addressOk
或者我是否必须为此地址地理编码输入编写指令,以便在需要时使表单无效?
我正在使用Google Maps API V2进行活动,其中下拉导航地图位于第二个位置.
我正在实际添加地图,如:
mMapFragment = supportMapFragment.newInstance();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.placeHolder, mMapFragment, TAG_MAP)
.commit();
Run Code Online (Sandbox Code Playgroud)
我想获取GoogleMap ovject,因为文档https://developers.google.com/maps/documentation/android/map说它应该完成mMapFragment.getMap()
,但它返回null.
根据http://developer.android.com/reference/com/google/android/gms/maps/SupportMapFragment.html ,如果Fragment尚未通过onCreateView生命周期事件,则返回null.
片段何时准备好怎么知道?
编辑:我发现这个如何知道在使用SupportMapFragment时地图已经准备就绪?
覆盖onActivityCreated似乎是一个解决方案,但是我必须通过构造函数而不是newInstance()实例化片段,它有什么区别吗?
我想要测试onHandleIntent()
的方法IntentService
使用Robolectric
.
我正在启动服务:
Activity activity = new Activity();
Intent intent = new Intent(activity, MyService.class);
activity.startService(intent);
ShadowActivity shadowActivity = Robolectric.shadowOf(activity);
Intent startedIntent = shadowActivity.getNextStartedService();
assertNotNull(startedIntent);
Run Code Online (Sandbox Code Playgroud)
似乎startedIntent
不是null,但onHandleIntent()
似乎没有被调用.
我该怎么测试呢?
angularjs ×4
android ×3
node.js ×2
gruntjs ×1
karma-runner ×1
mocha.js ×1
passport.js ×1
robolectric ×1
socket.io ×1
supertest ×1
yeoman ×1