小编itm*_*kel的帖子

Angular2:TypeError:无法读取未定义的属性'Symbol(Symbol.iterator)'

我是观察者的新手,并在Angular2博客中尝试了Christoph Burgdorf的Observables的基本自动完成变体.运行此代码会产生:

EXCEPTION:TypeError:无法读取未定义的属性'Symbol(Symbol.iterator)'

在ingredientservice ... rawsearch发出REST get调用之后.警报还会弹出[object Object]消息.我已经验证了端点运行正常.

任何有关如何调试此建议的建议将不胜感激.

ingredientservice.ts等待对文本字符串进行更改,对其进行去抖动并执行REST调用以从端点获取自动完成匹配.

import {Injectable} from 'angular2/core';
import {Http} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/distinctUntilChanged';
import 'rxjs/add/operator/switchMap';
import 'rxjs/add/operator/map';

@Injectable()
export class IngredientService {
  endpoint_url: String = "http://localhost:5000/ingredient/";
  results: Observable<Array<string>>;
  constructor(private http: Http) { }

  search(terms: Observable<string>, debounceDuration = 400) {
    return terms.debounceTime(debounceDuration)
      .distinctUntilChanged()
      .switchMap(term => this.rawSearch(term));
  }

  getData: Object[];
  rawSearch(term: string) {
    console.log(term);

    this.http.get(this.endpoint_url + term)
      .subscribe(
      res => {
        this.getData = res.json(); …
Run Code Online (Sandbox Code Playgroud)

angular2-services angular

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

在 Vi-Mode 的 PSReadline 中重新绑定转义符

我已经为 PowerShell 安装了 PSReadline 模块,以便从 PowerShell 中的 Bash 获取按键绑定。我启用了 Vi-Mode,效果很好。

问题是:在 Vim 中我总是使用 j, k 退出插入模式。这意味着:我首先快速输入 j,然后输入 k。如果我真的想输入 j 和 k,那么我只需在输入 j 后等待超时即可。

如何在 PSReadline 的 Vi-Mode 中执行相同操作?我已经尝试过:Set-PSReadlineKeyHandler -Chord 'j', 'k' ViCommandMode,但后来我无法输入jk了。有任何想法吗?

powershell psreadline

7
推荐指数
1
解决办法
977
查看次数

如何从缓存任意结果的结构中删除过多的`clone`调用?

我正在阅读第二版Rust书中关于闭包的部分.在本节的最后,有一个练习来扩展Cacher之前给出的实现.我试了一下:

use std::clone::Clone;
use std::cmp::Eq;
use std::collections::HashMap;
use std::hash::Hash;

struct Cacher<T, K, V>
where
    T: Fn(K) -> V,
    K: Eq + Hash + Clone,
    V: Clone,
{
    calculation: T,
    values: HashMap<K, V>,
}

impl<T, K, V> Cacher<T, K, V>
where
    T: Fn(K) -> V,
    K: Eq + Hash + Clone,
    V: Clone,
{
    fn new(calculation: T) -> Cacher<T, K, V> {
        Cacher {
            calculation,
            values: HashMap::new(),
        }
    }

    fn value(&mut self, arg: K) -> V { …
Run Code Online (Sandbox Code Playgroud)

rust

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

是否有as_ref().unwrap()的快捷方式?

在我的代码中,我有很多带有Option<T>s 的结构.我需要在很多地方使用它们,所以我的代码充满了类似的结构访问car.engine.as_ref().unwrap().这对代码可读性来说很痛苦.

Option<T>类型的默认函数是否相同?喜欢car.engine.get()?当然,我可以为每个结构成员编写访问器函数,但这对于一些非常基本的东西来说似乎有些过分.我做错了吗?

我不太了解宏,但是有没有办法用宏缩短它?

readability optional rust

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