我在尝试在 Angular 8 中构建 prod 时遇到问题。错误是
ERROR in Error during template compile of 'AppModule'
  Function expressions are not supported in decorators in 'SocketLibModule'
    'SocketLibModule' references 'initializeApp'
      'initializeApp' contains the error at ../socket-lib/src/lib/socket-lib.module.ts(9,12)
        Consider changing the function expression into an exported function.
Run Code Online (Sandbox Code Playgroud)
什么指向我的库
export const SOCKET_CONFIG = new InjectionToken<SocketConfig>('SOCKET_CONFIG');
export function initializeApp(socketConfig: SocketConfig) {
  return (uriConfig: any) => {
    return () => uriConfig.load(socketConfig);
  };
}
@NgModule()
export class SocketLibModule {
  public static forRoot(socketConfig: SocketConfig): ModuleWithProviders {
    return {
      ngModule: SocketLibModule,
      providers: …Run Code Online (Sandbox Code Playgroud) 我创建了一个 Angular 指令,该指令应用于输入并以一些延迟(用于搜索)发出其值。
这个代码如下
@Directive({
    selector: '[search-field]'
})
export class SearchFieldDirective {
    @Input() searchFieldValueOutputDelay = 400;
    private _inputObservable$ = new Subject();
    @Output() searchValueUpdated = this._inputObservable$.asObservable().pipe(
        debounceTime(this.searchFieldValueOutputDelay),
        distinctUntilChanged(),
        tap(() => console.log('emit', this.searchFieldValueOutputDelay))
    );
    @HostListener('keyup', ['$event.target.value'])
    onChange(e) {
        console.log("change");
        this._inputObservable$.next(e);
    }
}
Run Code Online (Sandbox Code Playgroud)
问题是searchFieldValueOutputDelay它只在第一次使用,因此它的值为 400 而不是我在输入时提供的值。
<input (searchValueUpdated)="searchCard($event)" [searchFieldValueOutputDelay]="1000" type="search">
我正在通过这个网站学习 React Native https://www.tutorialspoint.com/react_native/react_native_animations.htm
但是,当我尝试在 iPhone 上打开应用程序时出现问题。根据错误,它找不到变量,尽管它是导入的。
import React, { Component } from 'react';
import { View, LayoutAnimation, TouchableOpacity, Text, StyleSheet} from 'react-native';
export default class Animations extends Component {
  state = {
    myStyle: {
      height: 100,
      backgroundColor: 'red'
    }
  };
  expandElement = () => {
    LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);
    this.setState({
      myStyle: {
        height: 400,
        backgroundColor: 'red'
      }
    })
  };
  collapseElement = () => {
    LayoutAnimation.configureNext(LayoutAnimation.Presets.linear);
    this.setState({
      myStyle: {
        height: 100,
        backgroundColor: 'red'
      }
    })
  };
  render() {
    return (
      <View>
        <View>
          <View …Run Code Online (Sandbox Code Playgroud) 我有一个组件,它代表列表中的一个项目,并使用我来获取这个项目this.route.snapshot.paramMap.get('id')。我如何嘲笑这个?我试过了
providers: [
                {
                    provide: ActivatedRoute,
                    useValue: { snapshot: { params: convertToParamMap({ id: '1' }) } }
                }
            ]
Run Code Online (Sandbox Code Playgroud)
但这导致
类型错误:无法读取未定义的属性“get”
我的 Angular 9 应用程序中有几个组件,它们的模板在 svg 文件中定义,例如templateUrl: './eye.component.svg'.
当我运行测试时出现错误
\n\n语法错误:意外的标记“<”
\nJest 遇到意外令牌
\n这通常意味着您正在尝试导入 Jest 无法解析的文件,例如它不是纯 JavaScript。
\n默认情况下,如果 Jest 看到 Babel 配置,它将使用它来转换您的文件,忽略“node_modules”。
\n您可以执行以下操作:
\nRun Code Online (Sandbox Code Playgroud)\xe2\x80\xa2 To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.\n\xe2\x80\xa2 If you need a custom transformation specify a "transform" option in your config.\n\xe2\x80\xa2 If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with …
在 laravel 文档中,有一部分是关于让用户停止使用的->userFromTokenAndSecret,但它似乎不适用于 facebook,并返回一个错误,表明该方法不存在。
如何通过令牌和秘密获取用户?
我使用 Laravel 作为 API,以便它无状态地工作,并且我不使用任何重定向。
我使用 Angular 应用程序登录并发送令牌。我需要处理这个。
我在 Angular 6 上有一个现有项目,其中测试未运行。它是如何发生的:在 PhpStorm 中,我按下文件上的上下文菜单run file.specs.ts。
它开始测试,打开浏览器,然后什么也没发生。这是日志
Waiting for a captured browser... To capture a browser open http://localhost:9876/
14 10 2018 13:04:17.500:WARN [launcher]: Chrome have not captured in 60000 ms, killing.
14 10 2018 13:04:17.799:INFO [launcher]: Trying to start Chrome again (1/2).
14 10 2018 13:05:17.808:WARN [launcher]: Chrome have not captured in 60000 ms, killing.
14 10 2018 13:05:18.055:INFO [launcher]: Trying to start Chrome again (2/2).
14 10 2018 13:06:18.062:WARN [launcher]: Chrome have not captured in 60000 …Run Code Online (Sandbox Code Playgroud) 有没有办法检查是否需要控制?
当我实现它接受一个专用表单字段部件的问题出现FormControl,并不仅input也验证错误。由于某些字段是必填字段,因此最好让用户知道是否需要*。
有没有一种方法来检查@Input() control: FormControl的Validators.required,并显示一个星号?
我的 Angular monorepo 项目中有几个应用程序。我还编写了大约 5 个库以在应用程序中使用。
我想知道的是如何更好地构建/架构这些库。
ins如下:
projects文件夹中使用)lodash和RxJs到目前为止我所做的:
umdModuleIds每个库的ng-package.json。peerDependencies在外部库上指定,例如lodash和RxJsprebuild大约 5 个命令ng build lib-nameimport { cloneDeep } from 'lodash'现在我看到我的main.js块比将一些服务/组件/功能提取到外部库之前大得多。现在main.jsprod build 的大小是 2.1 Mb,在我看来这太大了。
另外,我不确定是否值得为每个库(UMD、FESM2015、FESM5)制作 3 个不同的版本。
我从 dist 文件夹中导入库,因为它在文档中推荐的遵循下一个表单import { LibService } from 'lib'。
我有一个想要测试的 Angular 应用程序。它有登录部分,我需要以某种方式知道它是否工作正常(它发送登录数据,打开套接字连接,重定向到应用程序深度,并且路由防护没有阻止该重定向)。
我试过了
import { AppPage } from './app.po';
import { browser, by, element, until } from "protractor";
import urlContains = until.urlContains;
Run Code Online (Sandbox Code Playgroud)
...
it('should log in', () => {
        page.navigateTo();
        page.fillInputs();
        page.logIn();
        browser.waitForAngular();
        browser.wait(() => {
            return urlContains('dashboard');
        }, 2000);
    });
Run Code Online (Sandbox Code Playgroud)
即使我用不正确的数据填充字段并且应用程序不执行任何重定向,它也会成功。如何实现此重定向等待然后检查网址?
如果重要的话我会使用 Angular 6。
是的,我见过类似的主题,但我不明白答案。
我构建了一种队列管理器,它与 RxJs 可观察对象一起工作并一一执行它们。现在我想测试这个,但是我想测试的所有方法都是私有的。
公共接口只有两个方法来创建可观察对象并将其添加到队列管理器。
如果我尝试进行类似spyOn(myService, 'privateMethod')PhpStorm 的分析,则表明它不可分配给类型(并且引用公共方法)。
我无法将其提取到公开的内容中,因为这是一个复杂的逻辑,不应该从外部中断。
angular ×9
typescript ×3
karma-runner ×2
testing ×2
unit-testing ×2
angular-cli ×1
dingo-api ×1
facebook ×1
form-control ×1
jasmine ×1
javascript ×1
jestjs ×1
laravel ×1
monorepo ×1
ng-packagr ×1
php ×1
protractor ×1
react-native ×1
reactjs ×1
rxjs ×1
svg ×1
validation ×1