小编gar*_*hdn的帖子

绑定在动态加载的组件中不起作用

我遇到了一个问题,如果我动态加载一个组件,模板中没有任何绑定对我有效.除此之外,该ngOnInit方法永远不会被触发.

loadView() {
    this._dcl.loadAsRoot(Injected, null, this._injector).then(component => {
      console.info('Component loaded');
    })
  }
Run Code Online (Sandbox Code Playgroud)

动态加载的组件

import {Component, ElementRef, OnInit} from 'angular2/core'

declare var $:any

@Component({
    selector: 'tester',
    template: `
      <h1>Dynamically loaded component</h1>
        <span>{{title}}</span>
    `
})

export class Injected implements OnInit {

    public title:string = "Some text"

    constructor(){} 

    ngOnInit() {
      console.info('Injected onInit');
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用动态加载的组件,所以我认为可能会尝试错误地实现它.

这是一个证明这个问题的傻瓜.任何帮助,将不胜感激.

javascript angular

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

将核心数据与现有的单一视图应用程序一起使

我正在尝试了解Core Data,并且正在关注Apple的"Locations"教程.我遇到的一个直接绊脚石是我已经开始构建我想要使用Core Data的应用程序.它是单一视图应用程序.

为了在此应用程序中使用Core Data,我需要采取哪些步骤?教程说在创建项目时选择"使用核心数据进行存储"复选框,但必须有一种方法可以在项目创建后启用核心数据.

我真的很感激一些帮助.谢谢.

iphone core-data objective-c ios

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

如何引用应用程序中的每个UILabel

我想改变UILabel我的应用程序的每个视图中的每个视图的字体而不编码每一个(大约50).我该怎么做呢?

具体来说,我想知道如何引用所有UILabels.

谢谢

iphone objective-c ios

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

在按钮上单击移动浏览器,全屏播放YouTube视频

我想点击一个按钮全屏播放youtube视频.我目前有以下内容iframe:

<div class="youtube-trailer">
    <iframe class="youtube-player" type="text/html" src="http://www.youtube.com/embed/whatever" allowfullscreen frameborder="0"></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)

在Safari Mobile上,特别是当按下"播放"按钮时,视频将以全屏模式启动,这是所需的行为.这可以.我不希望iframe页面上显示.我只想要一个按钮,使用原生视频播放器全屏打开视频.即我不想创建一个过于精细的灯箱来容纳视频.

有人有主意吗?

javascript youtube jquery html5

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

如何在没有ng-model的情况下以角度2形式以编程方式更改原始属性

我是Angular 2框架的新手.我感谢任何帮助.

我在角2中有通常的组件:

import {FORM_DIRECTIVES, FormBuilder, Validators} from 'angular2/common';

export class TestComponent {
    public values = ['value1', 'value2', 'value3', 'value4'];
}
Run Code Online (Sandbox Code Playgroud)

然后我注入FormBuilder构造函数:

@Inject(FormBuilder) public fb
Run Code Online (Sandbox Code Playgroud)

HTML包含下一个标记:

<input [(ngModel)]="formData.title" type="text" class="form-control" ngControl="title">
Run Code Online (Sandbox Code Playgroud)

标题和描述非常有用.但我添加了bootstrap下拉列表,它没有任何表单元素.

<div *ngFor="#value of values" (click)="onValueChanged(value)" class="dropdown-item">{{value}}</div>
Run Code Online (Sandbox Code Playgroud)

所以,问题是html标记不包含任何模型.我试图解决这个问题的方法是创建函数onValueChanged

 onValueChanged(value){
    this.formData.controls.value.updateValue(value);
    this.formData.value = value;
    console.log(this.formData.pristine) //Still true :(
}
Run Code Online (Sandbox Code Playgroud)

这两行都不起作用,因为this.formData.pristine下拉列表更改后没有更改.

现在我正在考虑如何更新FormBuilder,例如,有一些方法可以this.fb.update()

javascript angular2-forms angular2-formbuilder angular

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

获取将由router.navigate生成的URL

我不知道是否有一种方式来获得该URL 被角的路由器调用时产生的navigate方法.

例如:

this._router.navigate(['browse'], { queryParams: { section: 'users', isActive: true } });

可能会导致导航 /browse#?section=users&isActive=true

如何在不执行导航或更新浏览器中的URL的情况下获取此路线?

typescript angular angular-router

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

Angular 2单击事件回调,不会触发更改检测

我在尝试(click)在Angular 2中的事件回调函数内执行某些逻辑时遇到了很大麻烦,而没有触发变化检测.

为什么我不想触发变化检测

回调函数执行简单的动画滚动到顶部.它不会影响其他任何组件,因此我不需要在每个组件中进行变化检测,实际上我真的不希望它开火!由于变化检测在每个组件中都会触发,因此动画在移动设备上的性能极差.

我试过的

我知道我可以使用区域外的代码运行

this._zone.runOutsideAngular(() => {
    someFunction();
})
Run Code Online (Sandbox Code Playgroud)

这很好地工作,当你想向区外运行的代码不是由调用click,keyup,keydown事件等.

因为我的组件看起来像......

<button (click)="doThing()">Do that thing outside the zone!</button>

doThing() {
    this._zone.runOutsideAngular(() => {
        myFunction();
    })
}
Run Code Online (Sandbox Code Playgroud)

... myFunction将在区域外运行,但click事件将触发变化检测.

我已经OnPush在尽可能多的组件中实现了变更检测策略.

重要的是,此处不会触发更改检测,但我找不到阻止它的方法.

编辑 请参见此plnk,并OnPush在所有组件中设置更改检测.单击子行组件按钮会在子行,行和应用程序组件中触发CD.

zonejs angular2-changedetection angular

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

当所有值均为 0 时,零刻度在轴上垂直居中

我注意到从 d3 版本 4 更新到版本 5 时行为发生了变化。在 v4 中,当数据集包含 y 轴的所有零值时,“0”刻度线会正确对齐到图表底部。

<head>
  <!-- load the d3.js library -->
  <script src="https://d3js.org/d3.v4.min.js"></script>
  <style>
    .line {
      fill: none;
      stroke: steelblue;
      stroke-width: 2px;
    }
  </style>
</head>

<script>
  var margin = {
      top: 50,
      right: 50,
      bottom: 50,
      left: 50
    },
    width = window.innerWidth - margin.left - margin.right,
    height = window.innerHeight - margin.top - margin.bottom;

  var n = 21;
  // An array of objects of length N. Each object has key -> value pair, …
Run Code Online (Sandbox Code Playgroud)

d3.js

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

使用UIAlertView在ViewControllers之间导航

我正在尝试根据用户的选择更改视图控制器UIAlertView.我是客观的新手,遇到了麻烦.

当用户按下"我已完成"时,我希望应用程序导航回上一个视图控制器.当用户按下"记分板"时,我希望应用程序导航到下一个视图控制器.

UIAlertView *jigsawCompleteAlert = [[UIAlertView alloc]   //show alert box with option to play or exit
                                  initWithTitle: @"Congratulations!" 
                                  message:completedMessage 
                                  delegate:self 
                                  cancelButtonTitle:@"I'm done" 
                                  otherButtonTitles:@"Play again", @"Scoreboard",nil];
            [jigsawCompleteAlert show];

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
        NSLog(@"Cancel Tapped.");
        [self.navigationController popViewControllerAnimated:YES];

    }
    else if (buttonIndex == 1) {
        NSLog(@"GO tapped.");
        startDate = [NSDate date];
        // Create the stop watch timer that fires every 10 ms
        stopWatchTimer = [NSTimer 
                          scheduledTimerWithTimeInterval:1.0/10.0
                          target:self
                          selector:@selector(updateTimer)
                          userInfo:nil
                          repeats:YES];
    } else if (buttonIndex == …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uialertview pushviewcontroller ios

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

如果@ 2x图像可用但不是常规分辨率图像会发生什么?

我想知道如果只将@ 2x图像复制到资源上会在非视网膜显示设备上发生什么?它会将视网膜显示图像缩小0.5,以适应UIImageView

我希望这不是一个愚蠢的问题!

iphone ipad ios retina-display

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