我一直在研究获得可点击链接的解决方案.我可以在使用UITextView + NSAttributedString时使用它,但当它是UITableViewCell时它不会正确地自动布局.
现在我已经将TTTAttributedLabel添加到我的项目中,它完美地调整了视图的样式.链接也变为蓝色并加下划线.
但是点击它们什么都不做.我确实在我的控制器上实现了TTTAttributedLabelDelegate,在故事板中实现了标签实现MyLabel(它只是扩展了TTTAttributedLabel并具有委托选项,因为我希望它们在同一个函数中触发).现在我已经将控制器设置为我认为可能无法指向自身的委托.
但这些功能都没有被解雇,我得到了断点并登录了它.
我实现了didSelectLinkWithUrl和didLongPressLinkWithUrl.
func attributedLabel(label: TTTAttributedLabel!, didSelectLinkWithURL url: NSURL!) {
Debug.log("link clicked")
}
func attributedLabel(label: TTTAttributedLabel!, didLongPressLinkWithURL url: NSURL!, atPoint point: CGPoint) {
Debug.log("link long clicked")
}
Run Code Online (Sandbox Code Playgroud)
出口
@IBOutlet weak var content: MyLabel!
Run Code Online (Sandbox Code Playgroud)
MyLabel
导入UIKit导入TTTAttributedLabel
class MyLabel : TTTAttributedLabel, TTTAttributedLabelDelegate {
override func didMoveToSuperview() {
if (self.delegate == nil) {
self.delegate = self
}
self.enabledTextCheckingTypes = NSTextCheckingType.Link.rawValue
self.userInteractionEnabled = true
}
func attributedLabel(label: TTTAttributedLabel!, didSelectLinkWithURL url: NSURL!) {
Debug.log("link clicked")
}
func attributedLabel(label: TTTAttributedLabel!, didLongPressLinkWithURL url: …Run Code Online (Sandbox Code Playgroud) 我正试图找到一种方法来测试我的实体使用Mockito;
这是一个简单的测试方法:
@Mock
private EntityManager em;
@Test
public void persistArticleWithValidArticleSetsArticleId() {
Article article = new Article();
em.persist(article);
assertThat(article.getId(), is(not(0L)));
}
Run Code Online (Sandbox Code Playgroud)
如何最好地模拟EntityManager将Id从0L更改为1L的行为?可能性最小的可读性障碍.
编辑:一些额外的信息; 在测试范围之外,EntityManager由应用程序容器生成
嗨,这个问题很可能只是一个科尔多瓦问题.我见过类似的问题,但从来没有得到满意的答案.
我的最终目标是,一种简单的方法来构建Android,iOS和Windows Phone应用程序的多个Flavors.
我最大的要求是:
我目前所做的是在我的webpack.config中添加一些代码(我的离子项目使用webpack).要改变sass颜色,我也可以在这里轻松添加其他选项.
这可能是实现它的最糟糕方式,但我只需要一个工作原型
var flavour = "some.namespace.dir";
var ENV = "TEST";
for(var i = 0; i < args.length ; i++) {
if (args[i] == "--env") {
if (args[i+1]) {
ENV = args[i+1];
}
}
if (args[i] == "--flavour") {
if (args[i+1]) {
flavour = args[i+1];
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,这将检查node命令是否有任何--flavour或--env标志来设置这些属性.在此之后,我将以愚蠢的方式加载配置.
var config =
JSON.parse(
require('fs').readFileSync(
require('path').resolve(
__dirname,
'flavours/' + flavour + ".json"),
'utf8'));
Run Code Online (Sandbox Code Playgroud)
好吧,所以我有一个json对象,我几乎可以在这里放任何东西,所以为了做自定义样式,我们可以使用sass加载器.
sassLoader: {
includePaths: [
'node_modules/ionic-angular',
'node_modules/ionicons/dist/scss'
],
data: "$custom-primary: " …Run Code Online (Sandbox Code Playgroud) I have MainComponent that uses ChildComponentA as a @ViewChild. MainComponent is calling a method on ChildComponentA.
I want to write an unit test case mocking ChildComponentA. How can I do this using TestBed (in Angular 2 RC5)?
Before I used to use overrideDirective(MainComponentName, ChildComponentA, MockChildComponentA); Is there an equivalent to this using TestBed?
I tried using
TestBed.overrideComponent(ChildComponentA,{
set: {
template: '<div></div>'
}
});
Run Code Online (Sandbox Code Playgroud)
which just sets the template, but I want to mock the methods in …
目前,我正在开发一个项目,该项目计算数据并将其按ID存储在分析数据库中.
例如,阅读新闻文章的次数(因此有20个类别的数据存储为整数).
我们将数据存储在以下字段中:int user_id int value_type_id int value datetime datetime
我们使用4个表,x_hour,x_day,x_week,x_month这样我们就不必计算潜在的几千甚至几百万条记录的数据.
需要动态计算数据并通过某些连接进行过滤.这一切都没有问题,并且按照预期并以令人满意的速度工作.
接下来的问题.我们希望数据显示在查看它的用户的时区中,时区并不总是相同的,因为它可以是反对的,例如UTC-5或UTC + 4.
由于我们将日期存储在UTC上,因此如果在午夜前一小时存储活动,则较大的间隔会将其视为昨天,即使它可能在该时区的同一天,因此我们在几天,几周和几个月的时间间隔存在问题.
我已经阅读了解决方案,添加24列来保存每个时区的数据,是否有人有不同的解决方案.
我有这个控制器,我正在尝试使用模拟MVC进行测试
@RequestMapping(value = "/something/{language}", method = RequestMethod.GET, produces = { "application/json", "application/xml" })
public ResponseEntity<someEntity> getInfo(
@PathVariable String language,
@DateTimeFormat(iso= DateTimeFormat.ISO.DATE_TIME) @RequestParam(required = false) Date fromDate
)
Run Code Online (Sandbox Code Playgroud)
因此,我希望允许像文档中的日期格式一样可解析:DATE_TIME最常见的ISO日期时间格式yyyy-MM-dd'T'HH:mm:ss.SSSZ,例如
但是我继续得到这样的东西:
处理程序执行导致异常:无法将类型“ java.lang.String”的值转换为所需的类型“ java.util.Date”;嵌套异常为
org.springframework.core.convert.ConversionFailedException:
Failed to conv ert from type java.lang.String to type
@org.springframework.format.annotation.DateTimeFormat
@org.springframework.web.bind.annotation.RequestParam java.util.Date for value '2015-09-26T01:30:00.000Z'; nested exception is
java.lang.IllegalArgumentException: Unable to parse '2015-09-26T01:30:00.000Z'
Run Code Online (Sandbox Code Playgroud)
据我所知,我没有做错任何事情,这一定是正确的。谁能照亮我的坏处?我认为不需要发布更多代码,因为异常确实显示了我传递给API的正确值,对吗?
我在这个具体问题上看到了一些问题.
我最近只处理angular2项目.无论如何我现在正在讨论一个问题.在已弃用的路由器中,我在路由的数据部分添加了用户角色,我已经覆盖了routerOutlet,因此我可以在激活路由之前检查此值).
目前我们可以使用CanActivate类/接口行,我们可以调用它.
现在我希望能够为这样的CanActivate类提供权限(我已经打成了Enum).在我通过访问我的SessionService来检查用户是否已登录之前,我现在需要检查用户是否具有某些权限.
正如我现在所看到的,我必须实现一个新的类,它为每个权限实现CanActivate.现在这意味着我将拥有7.然而,我们处于这个确切项目的早期阶段并且没有太多想到我可以将其提高到11.
我在我之前看到的是一个实现,每个canActivate实现只需要花费大约3-5行.但是,通过我可以提供属性或参数的实现,我会感觉更有帮助.
不要想到我必须实现以下类的情况:
CanActivateIfUserHasPermissionsViewContentAndViewUsers甚至更长.
注意在我的情况下权限基本上是多个动作.比如查看所有内容元素,或者编辑所有内容元素等.
我已经更新了我的项目和依赖项.每当我第一次渲染页面时,(除了root)它都无法立即生效.
F/e我有一个根页面,这是一个登录表单.每当令牌出现在localStorage中时,这将由发射器提供给登录页面.然后注入的NavController,推送我的主页面,一个TabController.
这不会马上发生,我可以捡起我的鼻子,去卫生间它停留在根页面上.当我实际关注输入时,它只会推送新视图.(当你做错了什么时,当它无法呈现页面时会显示一些黑色并且会出现离子崩溃.
然后在选项卡页面上,第一个选项卡不会渲染,但是当我单击第一个选项卡时,相同的其他选项卡,它们需要被单击两次(标签栏仅在您单击两次时变为活动状态).在此之后,一切正常,但肯定不是我们想要的.这是我所看到的视频.如果您将视频暂停为0.0,则会看到日志状态令牌成功.这就像代码中一样,就在推送之前.启动新页面,在我单击输入之类的元素之前,视图似乎不会更新.
ngOnInit() {
this.sessionService.subscribe(token => {
if (token && token.length) {
console.log("token returned success!", token, this.navController);
setTimeout( () => { this.navController.push(<any>MainTabs); }, 250 );
} else {
console.log("token returned", token);
}
});
}
Run Code Online (Sandbox Code Playgroud)
日志中的错误是与浏览器相关的angular2和ionic.
正如你所看到的那样,当Push被触发时没有;看起来应该如此,第一页继续显示一个加载器.一旦加载了内容,它就会消失(加载后我看到了设置值的console.logs触发器).如果我现在点击第一个标签项2次,它会显示内容.我选择单击"Acties"按钮,该按钮呈现第一个选项卡(注意我点击了第三个选项卡).单击第四页将呈现第三页,此后,它们已呈现一次,并按预期单击工作.
奇怪?
所以我使用的是RC5,当现在拥抱事物时,我遇到了一个问题,即我不确定我做错了什么还是按预期工作了。
在使表格指令等在全球范围内可用之前。如今,我们开始使用NgModule。似乎我无法在AppModule或SharedModule中全局使用FormsModule和ReactiveFormsModule。我需要将其导入我创建的每个模块中。
这是预期的吗?
我正在开展一个Angular 5项目,这没什么大不了的.虽然我从2.1/2.2早期就已经离开了Angular2 +业务.
所以我有这个调用公共API的服务,但我的测试仍然失败: Error: Expected one matching request for criteria "Match URL: http://api.icndb.com/jokes/random/10", found none.
码:
fact.service.spec.ts
import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
import {TestBed, inject} from "@angular/core/testing";
import {FactService} from "./fact.service";
import {Fact} from "../models/fact";
import {FactHttpResponse} from "../models/factHttpResponse";
describe("FactService", () => {
let factService: FactService;
let httpMock: HttpTestingController;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule],
providers: [FactService],
});
httpMock = TestBed.get(HttpTestingController);
factService = TestBed.get(FactService);
});
// TODO: Something is going wrong with this test get some help online
it("Should …Run Code Online (Sandbox Code Playgroud) 嗨,我想知道如何为我实现自定义标题,UITableView并使用它的autolayout进行正确定位.
我现在可以显示单元格,但不应用水平或垂直自动布局.
在我的tableViewController中,我将headerView变量设置为我的自定义nib,如下所示:
@IBOutlet var view: UIView!
override init(frame: CGRect) { // for using CustomView in code
super.init(frame: frame)
self.setup()
}
required init(coder aDecoder: NSCoder) { // for using CustomView in IB
super.init(coder: aDecoder)
self.setup()
}
private func setup() {
NSBundle.mainBundle().loadNibNamed("CustomHeader", owner: self, options: nil)
self.addSubview(view)
}
Run Code Online (Sandbox Code Playgroud)
在视图类中调用:
override init(frame: CGRect) { // for using CustomView in code
super.init(frame: frame)
self.setup()
}
required init(coder aDecoder: NSCoder) { // for using CustomView in IB
super.init(coder: aDecoder)
self.setup()
}
private …Run Code Online (Sandbox Code Playgroud) 我正在使用一个非常古老的代码库,因此存在大量已弃用或过时的代码.大多数是简单的拳击前.
但是这个问题跟我提出了一个问题:
private java.lang.Long version = Long.valueOf(-1L);
Run Code Online (Sandbox Code Playgroud)
是-1L不是已将值定义为Long?这之前有可能吗?
注意这不是-1l而是-1L.
我会理解它是作为-1甚至是写的-1l.有人可以向我解释发生了什么事吗?