小编Typ*_*nda的帖子

如何使用TypeScript返回正确的Promise

所以我正在用打字稿学习Angular 2.

我正在努力编写一个模拟服务,我相信如果服务成功获取对象,则应返回Promise,如果发生任何事情则返回错误.

我尝试过以下代码,但看起来它不是打字稿的写法语法.

更新了CODE:

saveMyClass(updatedMyClass: MyClass){
        //saving MyClass using http service
        //return the saved MyClass or error
        var savedMyClass : MyClass = someLogicThatReturnsTheSavedObject(updatedMyClass);
        if(isSomeCondition)
            return Promise.reject(new Error('No reason but to reject'));
        else
            return new Promise<MyClass>(resolve => {setTimeout( ()=>resolve(savedMyClass),1500  )}  );
    }
Run Code Online (Sandbox Code Playgroud)

但令我惊讶的是,打字稿抱怨"返回表达式中没有最常见的类型".

什么应该是正确的代码?因此,如果返回正确的MyClass,我可以使用我的组件来消费,如果服务中存在任何MyClass则反映错误.

谢谢

typescript es6-promise angular

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

如何在Apple的原生地图应用程序中执行本地搜索自动完成功能?

我已经从采用大多数的概念从MKlocalSearch苹果的示例代码做了一个实现

目前,对于自动完成,每次用户在搜索栏内输入时,我都会在我指定的位置发送新请求:

MkLocalSearchRequest.naturalLanguageQuery = searchBar.text
MkLocalSearchRequest.region = userlocation.region
Run Code Online (Sandbox Code Playgroud)

但是,与Apple的默认地图应用程序相比,我得到了与服务器完全不同的响应集,如下图所示

我的应用 Apple Maps应用

然后我捕获流量并发现我的请求转到https://gsp-ssl.ls.apple.com/search.arpc而Apple转到 https://gsp-ssl.ls.apple.com/auto_complete.arpc

有没有办法调整MkLocalSearchRequest以获得相同的响应对象集?

iphone mapkit ios mklocalsearch

12
推荐指数
2
解决办法
5345
查看次数

如何禁用UIButton Tint Color?

我知道我的情况可能很少见,但在这种情况下如何禁用UIButton色调?

我有一个定制的UIButton,它已归属于标题,以帮助显示不同颜色和alpha的按钮模式.

在此输入图像描述

在我的自定义按钮.m文件中,我设置了这样的东西

[self setBackgroundImage:[self imageWithColor:[UIColor grayColor]] forState:UIControlStateSelected];
Run Code Online (Sandbox Code Playgroud)

当选择按钮时,将使背景颜色变为灰色

但实际结果如下:

在此输入图像描述

我认为文本颜色如何变成白色是因为UIButtons的色调效果.

我可以将背景设置为灰色,而文本仍然保持按钮选定状态下属性标题中设置的颜色吗?

谢谢

objective-c uibutton ios

11
推荐指数
3
解决办法
9932
查看次数

DomSanitizationService不是一个函数

正如人们总是说没有一个被称为愚蠢问题的问题.

我现在正在学习Angular 2.0官方教程.正如我从packageconfig文件中看到的那样,它正在使用rc2.0.我试图压制框架工作抱怨iFrame标签中的"不安全"网址.

我已经检查了此Stack Overflow Question中的指令, 并按照LIVE Plunker中显示的所有内容进行操作.

我的VS代码在编译时没有抱怨任何内容,但是从Chrome检查器我可以看到错误.

在此输入图像描述

以下是我项目的TS文件.

import { Component, OnInit, OnDestroy } from '@angular/core';
import { Router, ActivatedRoute }       from '@angular/router';
import { ParcelsService } from './parcels.service';
import { SafeResourceUrl, DomSanitizationService } from '@angular/platform-browser';
import { Parcel } from './mock-parcels';
@Component({
  template: `
  <h2>Parcels</h2>
  <div *ngIf="parcel">
    <h3>"{{parcel.checkUrl}}"</h3>
    <iframe width=800 height=500 src="{{safeUrl}}}"></iframe>

    <p>
      <button (click)="gotoHeroes()">Back</button>
    </p>
  </div>
  `,
  providers:[ParcelsService, DomSanitizationService]
})
export class HeroDetailComponent implements OnInit, OnDestroy  {
  parcel: Parcel;
  safeUrl : SafeResourceUrl;
  private sub: …
Run Code Online (Sandbox Code Playgroud)

angularjs angular2-services angular

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

如何从Asp Web API返回单个DataRow对象?

因此,我正在编写一些Asp.Net WebApi代码,以与没有使用模型类的旧C#后端代码挂钩。(从DataAccess返回的纯dataTable,疯狂吧?我知道)

以下是我放在服务器端的代码。

 public IHttpActionResult GetProduct(int campaignID, int productID)
    {
        var so = new SearchOptions(campaignID)
        {
            ProductID = productID
        };

        var result = SearchManager.Search(so);
        if (result == null || result.Rows.Count == 0)
            return NotFound();
        return Ok(result.Rows[0]);

    }
Run Code Online (Sandbox Code Playgroud)

我期望得到这样的响应:

{
Field1: "field1",
Field2: "field2",
...
}
Run Code Online (Sandbox Code Playgroud)

但是实际上我有这个:

{
  "rowError": "",
  "rowState": 2,
  "table": [
    {
      Field1 : "field1",
      Field2 : "field2",
      ...
    }
  ],
  "itemArray": ["field1","field2"],
  "hasErrors": false
}
Run Code Online (Sandbox Code Playgroud)

我不希望所有这些rowErrorrowState...等

如果我在服务器端这样做:

public IHttpActionResult GetProduct(int campaignID, int productID) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net json asp.net-web-api

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

Angular 2 Routing:刷新页面,参数为"无法加载资源"错误

我正在从官方教程中学习Angular 2.我刚刚完成了最新的路由教程.困扰我的是我能够点击路径直到细节级别,例如' http:// domainname:portnumber/crisis-center/11 ',其中'crisis-center'是一个子路径''11 '是参数中传递的id.

我发现如果我从" http:// domainname:portnumber " 的根路径导航,那么我可以毫无困难地进入详细页面.但是,如果我打开一个新窗口并直接访问详细视图页面,那么它会给我错误说明 在此输入图像描述

我认为加载'js'文件失败了.

我已经有了基本的ulr标签

在index.html页面中

 <html>

<head>



    <title>Tour of Heroes</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="styles.css">


    <script src="node_modules/core-js/client/shim.min.js"></script>
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>

    <script src="systemjs.config.js"></script>
    <script>
      System.import('app').catch(function(err){ console.error(err); });
    </script>

    <base href="/">


</head>

<body>
    <my-app>Loading...</my-app>
</body>



</html>
Run Code Online (Sandbox Code Playgroud)

这是我的路径设置

import {RouterConfig} from '@angular/router';
import {CrisisDetailComponent} from './crisis-detail.component';
import {CrisisListComponent} from './crisis-list.component';
import {CrisisCenterComponent} from './crisis-center.component';
import {CrisisAdminComponent} from './crisis-admin.component';
import {AuthGuard} from '../auth.guard';

export const CrisisCenterRoutes: RouterConfig = …
Run Code Online (Sandbox Code Playgroud)

angularjs angular2-routing angular

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

IE如何确定站点是Internet站点还是Intranet站点?

在IE中,为人们提供了安全设置对话框,以决定将网站呈现为Internet还是Intranet网站。

我的问题是,如何判断当前加载的页面是IE 9还是10中的Internet或Intranet?由于我找不到像IE 7或8那样的状态栏

internet-explorer internet-explorer-10

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