小编Vik*_*iya的帖子

递归替换所有对象值

我在我的一个项目中使用的是angular 4,因此我必须将所有{ data } 替换为{{ data }}。即如果我有这样的对象

{
    key: {
             key1: {
                       key2: "This is data {someData}",
                       key3: "This is data2 {someData2}"
                   }
         },
    key2: "This is data3 {someData3}"
}
Run Code Online (Sandbox Code Playgroud)

结果应该是

{
    key: {
             key1: {
                       key2: "This is data {{someData}}",
                       key3: "This is data2 {{someData2}}"
                   }
         },
    key2: "This is data3 {{someData3}}"
}
Run Code Online (Sandbox Code Playgroud)

我对递归的工作方式不满意。因此,我无法显示我尝试过的任何内容。请帮忙。任何帮助,将不胜感激。

javascript

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

ErrorHandler:与 promise 一起使用时无法获取错误对象

我正在构建一个实现自定义错误处理程序的角度应用程序。

当你有一个自定义的错误处理程序并且当一个 observable 与 http 一起使用并且当错误没有被捕获时,使用一个 catch 块,如下所示

this.http.get('/doesntExist').subscribe();
Run Code Online (Sandbox Code Playgroud)

自定义 ErrorHandler 的 handleError() 函数获取一个 HttpErrorResponse 对象,该对象可用于获取必要的信息并全局处理错误。但是当你使用承诺时,就像下面这样

this.http.get('/doesntExist').toPromise();
Run Code Online (Sandbox Code Playgroud)

而不是 HttpErrorResponse ,将抛出一个字符串说

错误:未捕获(承诺):HttpErrorResponse:

并且您无法在 handleError() 方法中真正获得错误信息。你可以在这里看到它的实际效果

这是理想的行为吗?难道我做错了什么?有什么解决方法吗?请帮忙。我被卡住了;

更新

控制台中字符串错误的堆栈跟踪

Error: Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":[],"lazyUpdate":null},"status":200,"statusText":"OK","url":"https://angular-promise-bug.stackblitz.io/doesntExist","ok":false,"name":"HttpErrorResponse","message":"Http failure during parsing for https://angular-promise-bug.stackblitz.io/doesntExist","error":{"error":{},"text":"<!DOCTYPE html>\n<html>\n<head>\n  <link href=\"https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700|Lato:400,700,900\" rel=\"stylesheet\">\n  <base href=\"/\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n  <link rel=\"stylesheet\" media=\"screen\" href=\"https://c.staticblitz.com/assets/preview-8222014a50f8588c56d057621cdaf871.css\" />\n  <script src=\"https://c.staticblitz.com/assets/common-bd7eff1ca58185bf8131b.js\" crossorigin=\"anonymous\"></script>\n  <script src=\"https://c.staticblitz.com/assets/ext-fb68da629568861fd08cb.js\" crossorigin=\"anonymous\"></script>\n  <script src=\"https://c.staticblitz.com/d/webcontainer.a966dcc4085d3fff5bb.js\" crossorigin=\"anonymous\"></script>\n  <script src=\"https://c.staticblitz.com/assets/preview-3a0c9433aa42f56dbd90b.js\" crossorigin=\"anonymous\"></script>\n  <script>(function(){_preboot(\"https://l.staticblitz.com/b/v1/angular-promise-bug/f9f42b37e9b\",{p:\"stackblitz\",a:\"AIzaSyBZSvuCzbUhuRrSps-HjM5bFClLPaFF9Vg\",o:true})})()</script>\n</head>\n<body></body>\n</html>\n"}}
    at resolvePromise (angular-promise-bug.stackblitz.io/turbo_modules/zone.js@0.8.26/dist/zone.js:814)
    at eval (angular-promise-bug.stackblitz.io/turbo_modules/zone.js@0.8.26/dist/zone.js:724)
    at SafeSubscriber.eval [as …
Run Code Online (Sandbox Code Playgroud)

angular angular5

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

基于类的 Scss 变量

我正在尝试为我的一个项目进行主题化,并且我正在使用 css 变量。我正在定义 css 变量如下

.theme-1 {
    --var-1: #ffe;
    --var-2: #000;
}

.theme-2 {
    --var-1: #fff;
    --var-2: #000;
}
Run Code Online (Sandbox Code Playgroud)

在 html 中,我应用了如下主题

<div [ngClass]="'theme-1'">
<!--content>

<-->
</div>
Run Code Online (Sandbox Code Playgroud)

除了这里提到的 IE -11 之前不支持 css-variables 之外,一切都很好。

有什么方法可以用 scss 变量实现这一点,以便我可以定义全局变量并根据 class 更改值。

注意:我在我的项目中使用了 angular,因此我也必须担心视图封装。如果答案可以通过默认封装来实现,那就太好了。

提前致谢。

sass css-variables angular scss-mixins

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

多个 ngx 分页错误 - 角度 2

我正在为我的一个项目使用 angular 2,我正在使用 ngx-pagination 对表进行分页。我的页面结构是这样的

parent->child1=table1
        child2-table-2
        child-table-3
        child4-table-4
Run Code Online (Sandbox Code Playgroud)

每个孩子都调用自己的休息请求并填充表格。我在父级中使用了子组件,如下所示

parent->child1=table1
        child2-table-2
        child-table-3
        child4-table-4
Run Code Online (Sandbox Code Playgroud)

等等

在每个子组件中,我都使用 ngx-pagination 作为

<tr *ngFor="let data of exitProcessPendingList | paginate: { itemsPerPage: 7, currentPage: pgNumber};let i=index">

<pagination-controls (pageChange)="pgNumber = $event"></pagination-controls>
Run Code Online (Sandbox Code Playgroud)

每个孩子都有唯一的 pageNumber 变量;

现在我面临的问题是,当我尝试更改一个表的页码时,它也会影响其他子表。如果我单击第一个表的第 2 页,所有其他表都将当前页更改为第 2 页.我做错了什么?我做的方式有什么问题吗?

angular2-directives angular2-template angular2-services angular

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