小编Dav*_*ave的帖子

Angular 2:将Observable转换为Promise

问)如何将以下observable转换为promise,以便我可以调用它.then(...)

我希望转换为承诺的方法:

  this._APIService.getAssetTypes().subscribe(
    assettypes => {
        this._LocalStorageService.setAssetTypes(assettypes);
    },
    err => {
        this._LogService.error(JSON.stringify(err))
    },
    () => {}
  ); 
Run Code Online (Sandbox Code Playgroud)

它调用的服务方法:

  getAssetTypes() {
    var method = "assettype";
    var url = this.apiBaseUrl + method;

    return this._http.get(url, {})
      .map(res => <AssetType[]>res.json())
      .map((assettypes) => {
        assettypes.forEach((assettypes) => {
          // do anything here you might need....
      });
      return assettypes;
    });      
  }  
Run Code Online (Sandbox Code Playgroud)

谢谢!

promise observable typescript angular

46
推荐指数
6
解决办法
7万
查看次数

如何在 macOS Mojave 10.14.6 上运行 Xcode 11.4

问题背景:

我有一部 iPhone 6s,它已经更新到 iOS 13.4。在 iOS 更新之前,我可以通过 Xcode 在设备上编码 + 运行我的应用程序,太棒了。

现在我无法在设备上从 Xcode 运行我的应用程序来测试我的代码,因为它说:

Xcode could not locate device support files
This iPhone 6s is running iOS 13.4 (17E255), which may not be supported by this version of Xcode. An updated version of Xcode may be found on the App Store or at developer.apple.com.
Run Code Online (Sandbox Code Playgroud)

所以我尝试安装最新的 Xcode (11.4),它现在说我必须将我的整个操作系统更新到 Catalina。

我不想这样做,因为我的系统运行良好,而且我听说过有关该版本的坏消息。

题:

有没有一种方法可以让 Xcode 构建到我的 iPhone 上,而无需更新我的整个操作系统并且可能会搞砸我的整台机器?

macos xcode ios

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

Ionic 2 + Angular 2:图像前面带有'unsafe:',因此即使它们很好也不会显示

出于某种原因,我的一些图像被预先添加'unsafe:',这导致它们不被渲染.

问)为什么会发生这种情况以及如何解决这个问题 - 这个Angular 2是白色的还是Ionic 2的奇怪?

例如

<p><img src="unsafe:data:image/jpeg;base64,/9.....
<p><img src="data:image/jpeg;base64,/9.....
Run Code Online (Sandbox Code Playgroud)

图像没有问题(见这里),请参见此处的plunkr

第二个图像是从Ionic 2渲染的,第一个我手动删除前缀以显示它很好.

image ionic2 angular

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

Ionic2切换组件更改事件未触发

我的应用程序渲染正常,但为什么change事件功能updateItem(item)不会被触发?

模板:

  <ion-list>
    <ion-item-sliding *ngFor="#item of items">
      <ion-item>
        <ion-label>{{item.title}}</ion-label>
        <ion-toggle [(ngModel)]="item.completed" (change)="updateItem(item)"></ion-toggle>
      </ion-item>
      <ion-item-options>
        <button primary (click)="editItem(item)">
          <ion-icon name="edit"></ion-icon>Edit
        </button>
      <button secondary (click)="deleteItem(item)">
        <ion-icon name="delete"></ion-icon>Delete
      </button>
      </ion-item-options>
    </ion-item-sliding>
  </ion-list>
Run Code Online (Sandbox Code Playgroud)

类:

export class Todos {
...
  updateItem(item) {
    alert(1)
    this._todosService.update(item).subscribe(
      response => { this.getItems(); }
    );
  }
... 
}
Run Code Online (Sandbox Code Playgroud)

events typescript ionic2 angular

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

Ionic2/Angular2/TypeScript:如何访问函数2016中的DOM元素

我似乎找不到以正确方式访问DOM元素的"正确"方法:
Angular2 + Ionic2 + TypeScript.

所以鉴于以下情况......

问)如何sketchElement在sign()函数中访问?

Settings.ts模板:

<button full class="top-button-margin" (click)="sign()">
  Sign
  <ion-icon name="create"></ion-icon>
</button>
<img id="sketchElement" src="img/logo.png" padding *ngIf="showSignatureView">
Run Code Online (Sandbox Code Playgroud)

我的settings.ts类:

@Page({
  templateUrl: 'build/pages/settings/settings.html'
})
export class SettingsPage {

  private currentUser: User = <User>{};
  private loggingOut: boolean = false;
  private currentConnection: string = "";
  private showSignatureView: boolean = false;

  constructor(
    private _platform: Platform,
    private _nav: NavController,
    private _events: Events,
    private _LoginService: LoginService,
    private _SessionService: SessionService,
    private _UIService: UIService) {

  }

  sign() {
    // I want to …
Run Code Online (Sandbox Code Playgroud)

getelementbyid typescript ionic2 angular

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

角度2 +离子2:检测对象是否被修改

问)如果我有一个带有大量属性的对象,所有属性都绑定到表单中的字段,那么当对象发生变化时如何捕获?

我不想把(blur)事件放在每个字段上,因为页面已经很重,这可能导致页面上的监听器太多.

例如

宾语:

var person = {
    name: string,
    email: string,
    phone: string
};
Run Code Online (Sandbox Code Playgroud)

形成:

<input [(ngModel)]="person.name" type="text" />
<input [(ngModel)]="person.email" type="text" />
<input [(ngModel)]="person.phone" type="text" />
Run Code Online (Sandbox Code Playgroud)

typescript ionic-framework ionic2 ionic3 angular

7
推荐指数
2
解决办法
8474
查看次数

Ionic 2:如何修复moment.js错误的使用

自从更新到RC.0以来,我遇到了与moment.js(我通过npm安装)相关的构建错误:

[13:44:16]  Error: Cannot call a namespace ('moment')
Run Code Online (Sandbox Code Playgroud)

我试过两种方式来引用时刻:

  • import * as moment from 'moment';
  • import moment from 'moment'

错误是一样的.

问)我做错了什么?这在RC.0之前有效

npm momentjs typescript ionic2 typescript-typings

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

Highcharts 响应式实心仪表标题最佳实践?

我如何最好地实现可靠的测量,其中:

  • 它对标题和主要值字体/大小有响应
  • 标题可以多行换行,
  • 也没有留下下面屏幕截图中看到的填充

屏幕截图(桌面与移动):

在此处输入图片说明

笔记:

  • 这是基于此处的官方 highcharts 示例。

这是我的选项代码(来自gaugeComponent.ts):

var options: any = {
    chart: {
      type: 'solidgauge'
    },
    title: null,
    pane: {
      center: ['50%', '55%'],
      // size: '140%',
      startAngle: -140,
      endAngle: 140,
      background: {
          backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || '#EEE',
          innerRadius: '60%',
          outerRadius: '100%',
          shape: 'arc'
      }
    },

    tooltip: {
      enabled: false
    },

    // the value axis
    yAxis: {
      min: 0,
      max: 100,     
      stops: stops,
      lineWidth: 0,
      minorTickInterval: null,
      tickAmount: 2,
      className: 'highcharts-gauge-heading',
      title: {
        text: …
Run Code Online (Sandbox Code Playgroud)

word-wrap highcharts gauge responsive-design

5
推荐指数
0
解决办法
910
查看次数

MVC 4.5 Web API路由无法正常工作?

第一条路线有效.

例如 api/Shelves/SpaceTypes/1

第二条路线不起作用.我得到多个动作错误.

例如 api/Shelves/1

问)为什么?

这些是我的路线:

config.Routes.MapHttpRoute(
    "DefaultApiWithAction",
    "api/{controller}/{action}/{id}"
);

config.Routes.MapHttpRoute(
    "DefaultApiWithId",
    "api/{controller}/{id}",
    null,
    new { id = @"\d+" }
);
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

public HttpResponseMessage Get(int id)
{
     ...
}

[ActionName("SpaceTypes")]
public HttpResponseMessage GetSpaceTypes(int id)
{
     ...
}
Run Code Online (Sandbox Code Playgroud)

routing controller asp.net-mvc-4 asp.net-web-api

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

离子2:加载组件并不总是消失(随机)

Q)任何人都知道Ionic 2中的Loading组件是否破损或者我是愚蠢的?

我试图使用Ionic 2中的Loading组件,如下所示:

let loading = Loading.create({
  content: 'Loading: ',
  duration: 3000
});
nav.present(loading);
Run Code Online (Sandbox Code Playgroud)

即使他们被设置为自我解雇,他们有时会出现翻倍(即屏幕上有2个叠加,背景太深),并且他们不会被解雇.

这似乎打破了我.

我试过保留一个全局变量并解雇每个变量:

  showLoading(nav: NavController) {
    if(!window.loadingOverlays) {
      window.loadingOverlays = [];
    }
    // only ever show one instance of the overlay.
    if(window.loadingOverlays && window.loadingOverlays.length > 0) {
      return;
    }

    let loading = Loading.create({
      content: 'Loading...'
    });
    nav.present(loading);
    window.loadingOverlays.push(loading);
  }

  hideLoading() {
    if(!window.loadingOverlays || window.loadingOverlays.length == 0) { 
      return; 
    }
    window.loadingOverlays.forEach((overlay) => {
      overlay.dismiss();
    });
    window.loadingOverlays = [];
  }
Run Code Online (Sandbox Code Playgroud)

并添加到它并手动解除它们,但这没有任何效果.

loading typescript ionic2 angular

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