我正在使用茉莉花进行angularJS测试.在我的视图中,我使用"Controller as"语法:
<div ng-controller="configCtrl as config">
<div> {{ config.status }} </div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何在茉莉花中使用这些"范围"变量?"控制器"指的是什么?我的测试如下:
describe('ConfigCtrl', function(){
var scope;
beforeEach(angular.mock.module('busybee'));
beforeEach(angular.mock.inject(function($rootScope){
scope = $rootScope.$new();
$controller('configCtrl', {$scope: scope});
}));
it('should have text = "any"', function(){
expect(scope.status).toBe("any");
});
});
Run Code Online (Sandbox Code Playgroud)
默认情况下scope.status,调用结束时会出现错误:
Expected undefined to be "any".
Run Code Online (Sandbox Code Playgroud)
更新:控制器(从TypeScript编译的javascript)如下所示:
var ConfigCtrl = (function () {
function ConfigCtrl($scope) {
this.status = "any";
}
ConfigCtrl.$inject = ['$scope'];
return ConfigCtrl;
})();
Run Code Online (Sandbox Code Playgroud) 我需要一个Map,我在其中放入不同类型的值(Double,String,Int,...),key可以是String.
有没有办法做到这一点,以便我得到正确的类型与map.apply(k)喜欢
val map: Map[String, SomeType] = Map()
val d: Double = map.apply("double")
val str: String = map.apply("string")
Run Code Online (Sandbox Code Playgroud)
我已经尝试了泛型类型
class Container[T](element: T) {
def get: T = element
}
val d: Container[Double] = new Container(4.0)
val str: Container[String] = new Container("string")
val m: Map[String, Container] = Map("double" -> d, "string" -> str)
Run Code Online (Sandbox Code Playgroud)
但是由于Container需要参数,所以不可能.这有什么解决方案吗?
我正在尝试根据相应图像的运动计算新的摄像机位置.图像符合针孔相机模型.
事实上,我没有得到有用的结果,所以我试着描述我的程序,并希望有人可以帮助我.
我将相应图像的特征与SIFT匹配,将它们与OpenCV的FlannBasedMatcher匹配,并使用OpenCV的findFundamentalMat(方法RANSAC)计算基本矩阵.
然后我通过相机内部矩阵(K)计算基本矩阵:
Mat E = K.t() * F * K;
Run Code Online (Sandbox Code Playgroud)
我通过奇异值分解将基本矩阵分解为旋转和平移:
SVD decomp = SVD(E);
Matx33d W(0,-1,0,
1,0,0,
0,0,1);
Matx33d Wt(0,1,0,
-1,0,0,
0,0,1);
R1 = decomp.u * Mat(W) * decomp.vt;
R2 = decomp.u * Mat(Wt) * decomp.vt;
t1 = decomp.u.col(2); //u3
t2 = -decomp.u.col(2); //u3
Run Code Online (Sandbox Code Playgroud)
然后我尝试通过三角测量找到正确的解决方案.(这部分来自http://www.morethantechnical.com/2012/01/04/simple-triangulation-with-opencv-from-harley-zisserman-w-code/所以我认为这应该是正确的).
然后计算新职位:
new_pos = old_pos + -R.t()*t;
Run Code Online (Sandbox Code Playgroud)
其中new_pos&old_pos是向量(3x1),R是旋转矩阵(3x3),t是平移向量(3x1).
不幸的是,我没有得到任何有用的结果,所以也许任何人都知道可能出现的问题.
以下是一些结果(以防万一有人可以确认其中任何一个肯定是错误的):
F = [8.093827077399547e-07, 1.102681999632987e-06, -0.0007939604310854831;
1.29246107737264e-06, 1.492629957878578e-06, -0.001211264339006535;
-0.001052930954975217, -0.001278667878010564, 1]
K = [150, 0, 300;
0, 150, 400;
0, 0, …Run Code Online (Sandbox Code Playgroud) 我是typescript和angular.js的新手,我正在努力处理http get请求.我正在使用DefinitelyTyped进行角度的类型定义.
我的控制器代码如下所示:
module game.Controller {
'use strict';
export interface IGameScope extends ng.IScope {
vm: GameCtrl;
}
export class GameCtrl {
private bonus: any;
private http: any;
constructor($scope: IGameScope, $http: ng.IHttpService, $location: ng.ILocationService) {
$scope.vm = this;
this.http = $http;
}
doBet() {
this.http.get('http://localhost:9000/db').success(function(data: any, status: any) {
this.bonus = data;
}
);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的观点是这样的:
<button ng-click="vm.doBet()">bet</button>
<div><span>bonus: {{ vm.bonus }}</span></div>
Run Code Online (Sandbox Code Playgroud)
当我在没有http请求的情况下更改红利变量时,视图模型绑定工作正常.但是当我尝试更新get请求的success函数中的bonus变量时,我收到以下错误:
TypeError: Cannot set property 'bonus' of undefined
Run Code Online (Sandbox Code Playgroud)
如何在success函数中更新变量?
如果有更好/更清洁的方式或做法来更新请求数据,我也将不胜感激
我正在尝试使用JsValue of play(v2.2.2)在模板中定义一个json对象.问题是,"转换为"
@(org: db.Tables.OrganizationRow)
@import models.format.EntityFormat._
@import play.api.libs.json.Json
<script type="text/javascript">
var org = @Json.toJson(org);
</script>
Run Code Online (Sandbox Code Playgroud)
结果是:
{"id":16,"userid":" ... more data ... };
Run Code Online (Sandbox Code Playgroud)
我怎样才能在scala html模板中获得正确的json?
我正在使用茉莉来测试我在TypeScript中编写的控制器.我的单元测试是用普通的javascript.我在测试控制器时遇到错误,我想注入一个模拟服务.
这是我的测试看起来的样子:
'use strict';
describe('ConfigCtrl', function(){
var scope, http, location, timeout, $httpBackend, service;
beforeEach(angular.mock.module('busybee'));
beforeEach(angular.mock.inject(function($rootScope, $http, $location, $timeout, configService, $controller){
scope = $rootScope.$new();
http = $http;
location = $location;
timeout = $timeout;
service = configService;
$controller('configCtrl', {$scope: scope, $http: http, $location: location, $timeout: timeout, configService: service});
}));
it('should have text = "constructor"', function(){
expect(true).toBe(true);
});
});
Run Code Online (Sandbox Code Playgroud)
我的app.ts:
module game {
'use strict';
var busybee = angular.module('busybee', []);
busybee.controller('configCtrl', ConfigCtrl);
busybee.service('configService', ConfigService);
...
...
}
Run Code Online (Sandbox Code Playgroud)
和我的TypeScript控制器:
module game {
'use strict'; …Run Code Online (Sandbox Code Playgroud) Java在java.secure.random包中提供了一个加密安全的随机数生成器.
如果我考虑像RNG的播种和循环重新实例这样的事情,是否可以使用这个数字生成器?或者我可以使用数字生成器"原样"吗?
有没有人体验过这台发电机?
编辑:要求是:
a)统计独立
b)在其范围内公平分布(在统计预期范围内)
c)通过各种公认的统计测试
d)密码学强.
我切换到Play Framework 2.3并且现在出现错误,我的项目所依赖的子项目不再编译了.
这是我的Build.scala档案:
val main = Project(appName, file(".")).enablePlugins(play.PlayScala).settings(
version := appVersion,
scalaVersion := "2.10.4",
libraryDependencies += jdbc,
libraryDependencies += cache,
slickCodeGen <<= slickCodeGenTask,
sourceGenerators in Compile <+= slickCodeGenTask
).dependsOn(dbGen)
Run Code Online (Sandbox Code Playgroud)
当我run或compile我的项目,target/scala-2.10仍然是空的.即使我尝试通过命令行(project dbGen然后compile)显式编译子项目,结果相同.在编译我的主项目时,我得到了一个java.lang.ClassNotFoundException,因为我的子项目没有编译.
它在Play 2.2中运行良好.知道我可能做错了什么吗?
我正在使用scala的play 2.1框架和MongoDB Salat插件.
当我更新Enumeration.Value时,我得到一个例外:
java.lang.IllegalArgumentException: can't serialize class scala.Enumeration$Val
at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:270) ~[mongo-java-driver-2.11.1.jar:na]
at org.bson.BasicBSONEncoder.putIterable(BasicBSONEncoder.java:295) ~[mongo-java-driver-2.11.1.jar:na]
at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:234) ~[mongo-java-driver-2.11.1.jar:na]
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:174) ~[mongo-java-driver-2.11.1.jar:na]
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:120) ~[mongo-java-driver-2.11.1.jar:na]
at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:27) ~[mongo-java-driver-2.11.1.jar:na]
Run Code Online (Sandbox Code Playgroud)
插入Enumeration.Value工作正常.我的案例类看起来像:
case class User(
@Key("_id") id: ObjectId = new ObjectId,
username: String,
email: String,
@EnumAs language: Language.Value = Language.DE,
balance: Double,
added: Date = new Date)
Run Code Online (Sandbox Code Playgroud)
和我的更新代码:
object UserDAO extends ModelCompanion[User, ObjectId] {
val dao = new SalatDAO[User, ObjectId](collection = mongoCollection("users")) {}
def update(): WriteResult = {
UserDAO.dao.update(q = MongoDBObject("_id" -> new ObjectId(id)), …Run Code Online (Sandbox Code Playgroud) 我对for理解和flatMap选项非常熟悉.
所以我知道你可以做点什么
val a: Option[_] = for {
foo <- Some(x)
bar <- Some(y)
baz <- Some(z)
} yield baz
Run Code Online (Sandbox Code Playgroud)
Some(z)如果在理解中没有任何内容None,那就给了我,因为它flatMap在每个语句中都做了.
但实际上我正在寻找其他方面的东西.我想穿越到for理解,只要一切None,就像是orElse在for理解.
例如:
val b: Option[_] = for {
foo <- None
bar <- Some(x)
baz <- None
} yield *return the one with some*
Run Code Online (Sandbox Code Playgroud)
有这样的东西,或者最好的方法是什么?
提前致谢!
我正在使用joda时间来格式化我的ISO Date输入字符串,但是我得到一个异常,我的ISO日期格式不正确:
Invalid format: "2014-06-20T11:41:08+02:00" is malformed at "+02:00"
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
val formatter: DateTimeFormatter = ISODateTimeFormat.dateTime.withZone(DateTimeZone.getDefault)
val date: DateTime = formatter.parseDateTime("2014-06-20T11:41:08+02:00")
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
我有一个地图,我在其中存储我想要在字符串中替换的key-> value对参数.例如Map(id - > 1,name - > peter)和https://example.com/#id/#name应生成此字符串:https://example.com/1/peter
这是我的代码到目前为止,它的工作原理.有没有办法让这项工作没有var?
def replaceUrlParams(url: String, params: Map[String, String]): String = {
var replacement: String = url
params.map(value => {
replacement = replacement.replaceAll("#"+value._1, value._2)
})
replacement
}
Run Code Online (Sandbox Code Playgroud)