小编fre*_*rik的帖子

MKAnnotation图像偏移与自定义图钉图像

我有一个MKAnnotation与自定义图钉图像.但是,引脚(MKAnnotationView)使图像相对于指定的坐标居中.我想将坐标点设置在图像的底部中心,而不是中心.

我试过用了annView.centerOffset = CGPointMake(-12, -28);.但问题是centerOffset与地图缩放级别无关.

可以在JS API和Android中执行此操作.有没有可能在objective-c中这样做?

..fredrik

iphone google-maps objective-c mkannotationview

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

根据SOLID编写JavaScript

有没有人在开发JavaScript时使用SOLID编程原理(或任何部分)?

我刚开始阅读它,但似乎找不到任何人用它来JS.我发现易于实施/使用的唯一部分是"单一责任原则".

我正在寻找的是使用这些原则的文章或例子.有没有争论为什么不应该使用某些部分?

例如,"接口隔离原则"表示"许多客户端特定接口优于一个通用接口的概念".

但据我所知,JS中没有接口这样的东西(如果它会很好).

javascript solid-principles

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

'Observable <T>'不是从'Observable <T>派生的类

当尝试从node_modulestypescript编译器中的类扩展类时抛出一个错误说:

Property 'source' is protected but type 'Observable<T>' is not a class derived from 'Observable<T>'.

这只发生在基类来自a时node_module.

基类看起来像:

import {Observable} from "rxjs/Observable";
export abstract class TestBase<T> {

    request(options: any):Observable<T> {
        return Observable.throw(new Error('TestBase is abstract class. Extend it and implement own request method'));
    }
}
Run Code Online (Sandbox Code Playgroud)

在项目中对其进行子类化:

import {Observable} from "rxjs/Observable";
import {TestBase} from "@org/core";

class SocketResponse {

}

class Socket {
    request(): Observable<SocketResponse> {
        return new Observable.of(new SocketResponse());
    }
}

export class Sub extends TestBase<SocketResponse> {
    request(options:any):Observable<SocketResponse> …
Run Code Online (Sandbox Code Playgroud)

typescript rxjs5

38
推荐指数
5
解决办法
9614
查看次数

在Google Maps API 3中获取标记的DOM元素

我正试图找到一种方法来获取标记的DOM元素.Google似乎使用不同的元素来显示标记,并使用其中一个来处理事件.

到目前为止,我已经弄明白了两件事.有一个生成的变量被称为fb将DOM元素保存在标记对象上,但我认为下次Google更新API时,它会被命名为不同的东西.所以没有去.

其次,如果将click事件附加到标记,API会将事件DOM元素作为参数发送到您指定的函数.在Firebug中查看它时,我找不到两者之间的任何关系.

我想要完成的是操纵DOM元素()并提供更多信息,然后只是一个带背景的'div'元素.

我在版本2中使用name属性(未记录)在div元素上生成id.

有没有人有想法?

javascript dom google-maps

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

谷歌地图版本3中的z-Index覆盖

我正试图在谷歌地图api v3中获得一个叠加层,以显示在所有标记之上.但似乎google api总是将我的叠加层设置为最低的z-index优先级.我发现只有解决方案是遍历DOM树并手动将z-index设置为更高的值.解决方案不好

我正在将我的新div添加到我的叠加层中:

 onclick : function (e) {
     var index = $(e.target).index(),
         lngLatXYposition = $.view.overlay.getProjection().fromLatLngToDivPixel(this.getPosition());
         icon = this.getIcon(),
         x = lngLatXYposition.x - icon.anchor.x,
         y = lngLatXYposition.y - icon.anchor.y

     $('<div>test</div>').css({ left: x, position: 'absolute', top: y + 'px', zIndex: 1000 }).appendTo('.overlay');
}
Run Code Online (Sandbox Code Playgroud)

在创建叠加层时,我已经尝试了所有可以想到的属性.zIndex,zPriority等

我正在添加我的叠加层:

$.view.overlay = new GmapOverlay( { map: view.map.gmap });
Run Code Online (Sandbox Code Playgroud)

GmapOverlay继承自新的google.maps.OverlayView.

有任何想法吗?

..fredrik

javascript google-maps

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

嵌套控制器的单元测试

我正在尝试为嵌套的控制器编写单元测试,但无法弄清楚如何在我的测试中模拟相同的行为.

我有2个控制器:

function FirstController ($scope) {
    $scope.childs = [{
         title : 'Hello, earth!'
    }];
};

function SecondController ($scope) {
    $scope.child.title = $scope.child.title + $scope.$index;
};
Run Code Online (Sandbox Code Playgroud)

在我的HTML中:

<div data-ng-controller="FirstController">
    <div data-ng-repeat="child in childs" data-ng-controller="SecondController">
        {{ child.title }}
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这按预期工作(http://jsfiddle.net/tcayp/1/)

单元测试:

// FirstController
it('Should have childs', function () {
    scope = {};
    ctrl = new FirstController(scope);
    expect(scope.childs.length).toBeGreaterThan(0);
});
// SecondController
it('Should have inherited a child', function () {
    scope = {};
    ctrl = new SecondController(scope);
    expect(scope.child.title).toEqual('Hello, earth!0');
});
Run Code Online (Sandbox Code Playgroud)

在SecondController测试中,我无法弄清楚如何从ng-repeat模拟继承链.

unit-testing angularjs

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

Google App Engine:Sendmail,找不到命令

我想让sendmail在localhost上工作.问题是app引擎有错误的sendmail路径,因为它抛出错误:/ bin/sh:sendmail:command not found

使用Mac OS X,sendmail的路径是:/ usr/sbin/sendmail

有谁知道如何改变这个?

..fredrik

google-app-engine sendmail

6
推荐指数
2
解决办法
2892
查看次数

查明函数是匿名的还是在对象中定义的

我正在尝试用 JavaScript 编写一个辅助方法。如果发送函数或对函数的引用,它的行为应该有所不同。

我想像这样使用它:

helper('div', function () { return false; })
helper('div', obj.fn)
Run Code Online (Sandbox Code Playgroud)

我不明白的是:如何在辅助函数内部区分两者之间的区别?

我认为这是因为 JavaScript 在发送 obj.fn 之前首先评估它。我发现的唯一解决方法是将 obj.fn 作为 obj 发送,即

helper('div', { fn: obj.fn })
Run Code Online (Sandbox Code Playgroud)

然后我可以用 typeof 来区分两者之间的区别。但我真的很喜欢某种无需额外对象声明的方法。

javascript function

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

在服务器上运行脚本在谷歌应用引擎中启动,在Python中

每次开发服务器启动时都可以运行脚本吗?还在每次部署到谷歌?

我希望应用程序根据某些方法返回的内容来填充数据库.

有没有办法做到这一点?

..fredrik

python google-app-engine

5
推荐指数
1
解决办法
2283
查看次数

facebook auth问题与tipfy 1.0b

我试图模仿http://tipfy-auth.appspot.com示例中的登录页面(来源http://code.google.com/p/tipfy/source/browse/examples/auth/app/)没有成功.当用户被重定向回页面时,我似乎遇到了问题.当前请求流程如下:

LoginPage(LoginHandler) - > Facebook redirect(FacebookAuthHandler)302 - > Facebook.com - > Facebook redirect(FacebookAuthHandler)302 - > SignupPage(SignupHandler)302 - > LoginPage(LoginHandler).

这里的问题(据我所知)是从注册(应该是端点)到登录页面的最后302(http重定向).

经过一些激烈的日志记录(无法找到本地测试),似乎从facebook返回时会设置一个会话.会话FacebookAuthHandler在两个地方self.auth.session(dict)和self.session(a SecureCookieSession)中作为dict存储在请求handler()上,但在重定向到SignupPage之后self.auth.session是None.

从SignUpPage到LoginPage的重定向发生是因为SignupHandlerget方法有一个装饰器@login_required,self.auth.session用于确定是否应该在此处理或重定向reuquest.

那么为什么self.auth.session不能保留在请求之间而self.session是什么?self.auth.session每个请求都设置好吗?如何存储会话?如果它在数据库中,则数据存储区类型是否重要(主/从或高复制).

我正在挖掘源代码,但找不到任何有用的东西.

..fredrik

编辑

发表以下答案.

authentication session google-app-engine tipfy

5
推荐指数
1
解决办法
249
查看次数