小编oBu*_*usk的帖子

Ng-init如果尚未创建数组

我正在尝试为应用程序构建模板,并希望显示带有名称的动态列表.所以我得到这个代码来显示列表并添加/删除行;

<table ng-init="page.businessRows = []">
<thead>
    <tr>
        <th>Company</th>
        <th>Contact</th>
        <th>Phone</th>
    </tr>
</thead>
    <tr ng-repeat="row in page.businessRows">
        <td>
            <input type="text" ng-model="row.name" />
        </td>
        <td>
            <input type="text" ng-model="row.contact" />
        </td>
        <td>
            <input type="text" ng-model="row.phone" />
        </td>
        <td>
            <button ng-click="page.businessRows.splice($index,1)">
                Remove
            </button>
        </td>
    </tr>
</table>
<button class="btn" ng-click="page.businessRows.push({})">addRow</button>
Run Code Online (Sandbox Code Playgroud)

加载此模板时,page.busnessRows很可能会加载行,因此我想更改ng-init为仅在未初始化businessRows时创建空数组.

我试过ng-init="page.businessRows = page.businessRows.length < 1 ? [] : page.businessRows但它没有用.我如何打算在jsangular表达式中做条件?

所有帮助赞赏.提前致谢

javascript arrays angularjs angularjs-ng-repeat

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

watchOptions.ignored和webpack.WatchIgnorePlugin有什么区别

当使用带有手表的webpack时,例如在使用时webpack-dev-server,似乎(至少)有两种不同的方式来排除观看文件.我真的找不到关于这两种配置之间差异的文档以及它们为何不同的文档.有谁知道为什么?一种方法是首选吗?我应该打开一个问题和/或提出改进文档的请求吗?

我最近遇到的情况是第一次运行时多次触发手表的情况是通过添加watchIgnorePlugin而不是固定来修复的watchOptions.ignored

webpack.WatchIgnorePlugin

在监视模式下,忽略指定的文件,即与提供的路径或正则表达式匹配的文件.

new webpack.WatchIgnorePlugin(paths)
Run Code Online (Sandbox Code Playgroud)

选项

  • paths(array):RegExps列表或目录的绝对路径或应忽略的文件.

https://webpack.js.org/plugins/watch-ignore-plugin/

watchOptions.ignored

对于某些系统,观看许多文件系统可能会导致大量CPU或内存使用.可以排除一个巨大的文件夹,如node_modules:

 ignored: /node_modules/
Run Code Online (Sandbox Code Playgroud)

也可以使用任何匹配模式:

 ignored: "files/**/*.js"
Run Code Online (Sandbox Code Playgroud)

https://webpack.js.org/configuration/watch/

webpack webpack-dev-server

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

打字稿错误优先回调输入(noImplicitAny、strictNullChecks)

我想在项目中使用带有和的typscript声明一个带有错误优先回调的函数。noImplicitAnystrictNullChecks

有没有办法声明 a interfaceortype允许两个不同的签名并在调用时工作?

最简单直接的方法就是这样声明

function example(callback: (err?: Error, result?: {data: any}) => void) {
    callback(undefined, {data: "hello"});
}
Run Code Online (Sandbox Code Playgroud)

但是,这允许我在callback()内部调用(不带参数),example这不是我们想要做的事情,因为回调应该始终以错误或结果调用。

function example(callback: (err: Error | undefined, result:  {data: any} | undefined) => void) {
    callback(undefined, {data: "hello"});
}
Run Code Online (Sandbox Code Playgroud)

这是不允许的example()。必须使用 2 个参数调用回调。

然而,这两种模式都意味着errresult可以是undefined。这并不完美,因为以下会导致错误。

example((err, result) => {
    if(err) { console.error(err); return; }

    console.log(result.data);
});
Run Code Online (Sandbox Code Playgroud)

由于result 可以undefined,我们不能想当然地认为它有属性data。为了解决这个问题,我要么必须在调用时断言第二个参数是某物 …

interface typing callback node.js typescript

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