小编pic*_*ter的帖子

如何在Jasmine中使用带有"Controller as"语法的范围变量?

我正在使用茉莉花进行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)

jasmine angularjs

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

Map Scala中的不同类型

我需要一个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需要参数,所以不可能.这有什么解决方案吗?

generics scala shapeless

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

相应图像的相机运动

我正在尝试根据相应图像的运动计算新的摄像机位置.图像符合针孔相机模型.

事实上,我没有得到有用的结果,所以我试着描述我的程序,并希望有人可以帮助我.

我将相应图像的特征与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)

opencv translation rotation motion 3d-reconstruction

10
推荐指数
1
解决办法
8853
查看次数

TypeScript/angularJS HTTP GET请求中的范围

我是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函数中更新变量?

如果有更好/更清洁的方式或做法来更新请求数据,我也将不胜感激

angularjs typescript angularjs-scope

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

HTML模板中的playframework JsValue

我正在尝试使用JsValue of play(v2.2.2)在模板中定义一个json对象.问题是,"转换为&quot;

@(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)

结果是:

{&quot;id&quot;:16,&quot;userid&quot;:&quot; ... more data ... };
Run Code Online (Sandbox Code Playgroud)

我怎样才能在scala html模板中获得正确的json?

html json scala playframework

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

在AngularJS/Jasmine中注入Mock服务

我正在使用茉莉来测试我在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)

jasmine angularjs typescript

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

java.secure.random是赌博业的充分选择吗?

Java在java.secure.random包中提供了一个加密安全的随机数生成器.

如果我考虑像RNG的播种和循环重新实例这样的事情,是否可以使用这个数字生成器?或者我可以使用数字生成器"原样"吗?

有没有人体验过这台发电机?

编辑:要求是:

a)统计独立

b)在其范围内公平分布(在统计预期范围内)

c)通过各种公认的统计测试

d)密码学强.

java random algorithm prng

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

为什么子项目从2.2迁移到2.3后无法编译?

我切换到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)

当我runcompile我的项目,target/scala-2.10仍然是空的.即使我尝试通过命令行(project dbGen然后compile)显式编译子项目,结果相同.在编译我的主项目时,我得到了一个java.lang.ClassNotFoundException,因为我的子项目没有编译.

它在Play 2.2中运行良好.知道我可能做错了什么吗?

scala playframework-2.2 playframework-2.3

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

带枚举值的Scala序列化异常

我正在使用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)

serialization scala mongodb playframework-2.0

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

对于orElse而不是flatMap的Scala for-comprehension

我对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,就像是orElsefor理解.

例如:

val b: Option[_] = for {
    foo <- None
    bar <- Some(x)
    baz <- None
} yield *return the one with some*
Run Code Online (Sandbox Code Playgroud)

有这样的东西,或者最好的方法是什么?

提前致谢!

scala for-comprehension

4
推荐指数
1
解决办法
680
查看次数

joda时间ISO DateTime格式

我正在使用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)

这有什么不对?

datetime scala jodatime isodate

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

替换String中key-> values对的出现

我有一个地图,我在其中存储我想要在字符串中替换的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)

functional-programming scala

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