小编Bob*_*bby的帖子

Angularjs到angular4到angularjs

我有一个APP,我逐渐移植到角4.

现在,我在AngularJS中的Angular 4中有一些组件.从angularjs - > angular4 - > angularjs传递时我遇到了问题.从JS到4的第一次转换非常完美,但是后来我在主屏幕上遇到了我的Angular 4组件.URL更改,但页面没有重定向到Angular JS组件,我的ng-outlet不再刷新.

ROUTER是angularJS.

Angular 4组件使用以下方式降级:

import {
    Injectable,
    ModuleWithProviders,
    NgModule
} from '@angular/core';

import {
    APP_MODULE_NAME
} from '../../constants';

declare const angular: angular.IAngularStatic;
import {
    downgradeInjectable,
    downgradeComponent
} from '@angular/upgrade/static';


// Singleton Module
@NgModule()
@Injectable()
export class ComponentHelper {
    constructor() {}

    static forRoot(): ModuleWithProviders {
        return {
            ngModule: ComponentHelper
        }
    }

    public static DowngradeFactory(componentName: string, className: any): void {
        angular.module(APP_MODULE_NAME).factory(componentName, downgradeInjectable(className));
    }

    public static DowngradeDirective(componentName: string, className: any): void {
        angular.module(APP_MODULE_NAME).directive(componentName, …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angular

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

合并弃用警告混淆

使用 RXJS 我有以下内容

      merge(this.optionValueChanged$, this.options.changes).subscribe(() => {
        this.selectionByValue(this.pValue)
      }),
Run Code Online (Sandbox Code Playgroud)

现在,悬停这个返回

@deprecated — 使用 {@link schedule} 和 {@link mergeAll}(例如`scheduled([ob1, ob2, ob3], schedule).pipe(mergeAll())

但我阅读了预定的内容,看起来它并没有完全按照我的意愿行事。另外,我无法弄清楚scheduled方法内部的那些scheduled代表什么。

rxjs

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

完成后我应该取消订阅吗?

我有一个关于 observable 的快速问题。

我有以下可观察的:

  getElevation(pos: Cartographic): Observable<Cartographic> {
    return new Observable(observer => {
      const promise = Cesium.sampleTerrain(this.terrainProvider, 11, Cesium.Cartographic(pos.longitude, pos.latitude))
      Cesium.when(promise, (updatedPositions) => {
        observer.next(updatedPositions);
        observer.complete();
      });
    });
  }
Run Code Online (Sandbox Code Playgroud)

在一个组件中,我有:

this.service.getElevation(value).subscribe((e) => {});
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是一个一次性的observable,所以我完成后,完成后会自动关闭订阅吗?或者,我是否也必须这样做:

const sub = this.service.getElevation(value).subscribe((e) => {sub.unsubscribe();});
Run Code Online (Sandbox Code Playgroud)

rxjs

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

全局范围的扩展只能直接嵌套在外部模块或环境模块声明中(2669)

我想将我的NodeJS配置存储在全局范围内。

我试图遵循此=> 在node.js和其他Stackoverflow解决方案中扩展TypeScript Global对象

我制作了一个名为global.d.ts的文件,其中包含以下代码

declare global {
    namespace NodeJS {
      interface Global {
          config: MyConfigType
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

全局作用域的扩展只能直接嵌套在外部模块或环境模块声明中。ts(2669)

但是这样做很好=>

declare module NodeJS  {
    interface Global {
        config: MyConfigType
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我需要导入文件MyConfigType以键入配置,但是第二个选项不允许这样做。

typescript

7
推荐指数
3
解决办法
2037
查看次数

如何使每行的垂直文本滚动停止

我有一个带有大量文本的div,我希望点击箭头时所有通道都可见:

CodePen

现在,有些行被跳过,因此无法读取.

是否可以减少每次点击的滚动量?

示例目前仅适用于chrome(稍后将修复firefox).

.text{
  height:15px;
  width:200px;
  overflow:auto;
}
Run Code Online (Sandbox Code Playgroud)
<div class="text">The querySelector() method returns the first element that matches a specified CSS selector(s) in the document.

Note: The querySelector() method only returns the first element that matches the specified selectors. To return all the matches, use the querySelectorAll() method instead.

If the selector matches an ID in document that is used several times (Note that an "id" should be unique within a page and should not be used more …
Run Code Online (Sandbox Code Playgroud)

html javascript css

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

如何使用 gridster 2 强制添加项目

我有以下网格 =>

  dashboard: Array<GridsterItemCustom> = [
    {cols: 4, rows: 10, y: 0, x: 1, type: NavigationMiniMapComponent, inputs: { synchGroupId : this.synchGroupId}, name: 'MINIMAP_NAME', id: 'waypoint'},
    {cols: 4, rows: 10, y: 0, x: 5, type: NavigationVrMapComponent, inputs: { synchGroupId : this.synchGroupId}, name: 'VRMAP_NAME', id: 'vrMap'},
    {cols: 1, rows: 3, y: 7, x: 0, type: NavigationWaypointUiComponent, name: 'WAYPOINT_INFO_NAME', id: 'informationn'},
    {cols: 1, rows: 3, y: 1, x: 0, type: NavigationDroneUiComponent, name: 'DRONE_INFO_NAME', id: 'droneNav'},
    {cols: 1, rows: 3, y: 4, x: 0, …
Run Code Online (Sandbox Code Playgroud)

angular angular-gridster2

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

在 svelte 中设置 tsconfig 路径

使用 Svelte 和 typescript,我想使用路径进行组件导入。

我有以下 tsconfig.json

{
  "extends": "@tsconfig/svelte/tsconfig.json",
  "include": ["src/**/*"],
  "main": "src/main.ts",
  "exclude": ["node_modules/*", "__sapper__/*", "public/*"],
  "compilerOptions": {
    "baseUrl": "./",
    "module": "es2020",
    "target": "es2020",
    "paths": {
      "@src/*": ["src/*"],
      "@environments/*": ["src/environments/*"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在当我做

<script lang="ts">
  import Home from '@src/home/Home.svelte'
</script>

<style>
  main {
    width: 100%;
    height: 100%;
    position: relative;
  }
</style>

<main>
  <Home/>
</main>

Run Code Online (Sandbox Code Playgroud)

home 指向一些细长的内部文件 =>

在此处输入图片说明

而不是我的 Home.svelte

在此处输入图片说明

如果我这样做,它会起作用,我不import Home from './home/Home.svelte' 知道为什么。

typescript svelte

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

如何合并2个结构

我正在尝试在 Go 中修改一些东西。我创建了以下结构

我有一个 API 调用返回这样的东西

MyStruct struct {
    DID              string `bson:"d_id" json:"d_id"`
    PID              string `bson:"p_id" json:"p_id"`
    ...
}
Run Code Online (Sandbox Code Playgroud)

在代码中的一次调用中,我想向该结构附加一个新键

喜欢

myNewStruct {
        DID              string `bson:"d_id" json:"d_id"`
        PID              string `bson:"p_id" json:"p_id"`
        ...
        MyNewKey         string `bson:"new_key" json:"new_key"`
}
Run Code Online (Sandbox Code Playgroud)

问题是,我想添加一个新键,并将其余键保留在对象的根部,就像上面的对象一样。无需重写完整的对象结构,或对每个键执行 for 循环。

type MyNewStruct struct {
    *MyStruct
    MyNewKey MyValueType
}
Run Code Online (Sandbox Code Playgroud)

我有两个带有数据的变量,

MyStructDataMyNewKeyData

我想,但不知道如何将这两个数据合并到里面,MyNewStruct这样 MyStructData 中的所有内容都将位于 key 的根目录中,并且其中的所有内容都MyNewKeyData将成为 keyMyNewKey

我正在尝试类似的东西

    theObjectIWant := MyNewStruct {
        MyStructData,
        "MyNewKey" : MyNewKeyData 
    }
Run Code Online (Sandbox Code Playgroud)

但不起作用

go

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

忽略构建的角度模板错误

我正在使用这个

tl; dr:如何忽略打字稿中的“未定义属性”

为了创建自定义 plonter,文档说要查看他们的实现,我复制了他们的基本代码,模板如下所示 =>

<ac-html *ngIf="plonterService.plonterShown" [props]="{
  position: plonterPosition
}">
  <div class="plonter-context-menu">
    <div *ngFor="let entity of plonterService.entitesToPlonter">
      <div class="plonter-item" (click)="chooseEntity(entity)">

        {{ entity?.name || entity?.id }}
      </div>
    </div>
  </div>
</ac-html>
Run Code Online (Sandbox Code Playgroud)

组件

import { Component, OnInit, ChangeDetectorRef } from '@angular/core';
import { CoordinateConverter, PlonterService } from 'angular-cesium';

@Component({
  selector: 'app-entity-plonter',
  templateUrl: './entity-plonter.component.html',
  styleUrls: ['./entity-plonter.component.less'],
  providers: [CoordinateConverter],
})
export class EntityPlonterComponent implements OnInit {

  constructor(public plonterService: PlonterService,
              private chandeDetector: ChangeDetectorRef,
              private coordinateConverter: CoordinateConverter) { }

  ngOnInit() {
    this.plonterService.plonterChangeNotifier.subscribe(() => this.chandeDetector.detectChanges()); …
Run Code Online (Sandbox Code Playgroud)

typescript angular

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

How to listen to certain action in redux

I am using React and Redux (react starter kit).

I have a set of action, and when some are called, I want to dispatch side effects.

For exemple, I have a workspace that contains projects, if workspaceID in the store change, (using my action setWorkspaceId) then, the projects store will notice the change, and start execute some api call to update itself.

在 angular/ngrx 中,我使用的是效果,因此在调用某个动作时调度其他动作的效果。

什么是 redux 方式?我正在检查 Redux-Saga,但是还有其他东西或已经内置了吗?

reactjs redux

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