小编Kar*_*ner的帖子

角度服务装饰器提供了对延迟加载的根效果

我想知道如何新的角度2服务装饰

@Injectable({
    providedIn: 'root'
})
Run Code Online (Sandbox Code Playgroud)

与延迟加载一起工作.这意味着如果我有一个延迟加载的模块,并且提供了一个在root中提供的服务,那么这将包括应用程序基本代码中的特定服务.应用程序root chunks.js或者这仍然会延迟加载服务,然后在我懒加载该模块时使其成为全局单例.

有关提供的信息

https://angular.io/guide/ngmodule-faq

angular angular5 angular6

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

Javascript/Typescript - 获取对象属性可见性和类型

我的问题:

我需要区分typescript类的private,public和getter(get X())属性.

我的项目:

我有一个Angular项目,它有一个模型设计模式.阿卡.用户模型看起来像这样

class UserModel extends BaseModel {
    private _id: number;

    get id() { return this._id; }
    set id( _id: number ) { this._id = _id; }
}
Run Code Online (Sandbox Code Playgroud)

要将这些模型发送到后端,我只是JSON.stringify()它们,如果用户id设置为13,则返回一个这样的对象

{
    _id: 13
}
Run Code Online (Sandbox Code Playgroud)

现在我需要修改UserModel上的toJSON()函数,这样我将返回get X()变量,而不是返回对象的私有属性.输出应该如下所示.

{
    id: 13
}
Run Code Online (Sandbox Code Playgroud)

我创建了这个简单的函数,以检索对象的所有属性,但这给了我私有属性和get属性.

abstract class BaseModel {
    public propsToObj() : {[key: string]: any} {
        let ret: any = {};

        for (var prop in this) {
            ret[prop] = this[prop];
        }

        return ret;
    }
}
Run Code Online (Sandbox Code Playgroud)

并且toJSON函数看起来像这样

class UserModel extends BaseModel {
    private _id: …
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular

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

角组件默认样式CSS显示块

我讨厌所有的角度元素都是0x0像素,因为它们具有诸如app-card,app-accordion之类的名称,浏览器无法将其识别为符合HTML5的元素,因此不会提供任何默认样式。

这意味着在Chrome中检查它时,我看不到容器尺寸,并且当DOM真的很深时,很难理解哪个元素包含了屏幕上的哪个区域,等等。

在我看来,所有角度元素默认情况下都应进行块显示,这是合乎逻辑的,因为对于大多数情况而言,这是有道理的。

例如,考虑这些要素

bbs-accordion-header //(width 0px, height 0px)
Run Code Online (Sandbox Code Playgroud)

包含

bbs-accordion-header-regular //(width 1920px, height 153px)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

因此,bbs-accordion-header没有任何尺寸,即使它的孩子确实有它们。

我通过手动向每个元素.scss文件添加一行来解决此问题

:host { display: block; }
Run Code Online (Sandbox Code Playgroud)

但是每次手动添加它都是非常繁琐的。有谁知道更好的解决方案?

angular2-template angular angular5 angular6 angular7

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

Tensorflow 2.13.1,找不到tensorflow-text 2.13.0的匹配分布

我正在尝试使用 Python 3.11 安装最新的 Tensorflow 模型 2.13.1 ( pip install tf-models-official==2.13.1 )。自上周以来,Cython 和 PyYAML 在 Tensorflow 模型 2.13.0 中似乎无法很好地协同工作,因此无法安装。

但 2.13.1 给我一个错误,找不到相应的 tensorflow-text 版本 2.13.0。我收到的错误如下:

(tensorflow-env) username@DESKTOP:~/projects/tensorflow/models-master/research$ pip install tf-models-official==2.13.1
INFO: pip is looking at multiple versions of tf-models-official to determine which version is compatible with other requirements. This could take a while.
ERROR: Ignored the following versions that require a different python version: 1.21.2 Requires-Python >=3.7,<3.11; 1.21.3 Requires-Python >=3.7,<3.11; 1.21.4 Requires-Python >=3.7,<3.11; 1.21.5 Requires-Python >=3.7,<3.11; 1.21.6 Requires-Python >=3.7,<3.11; 1.6.2 …
Run Code Online (Sandbox Code Playgroud)

python pip python-3.x tensorflow tensorflow2.0

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

SQL表具有单列和增量ID

简单的数据库设计问题,我老实说不能完全指责.

在很多情况下,我有一个类型表,它由一个ID和类型的名称组成.Ala.语言代码表有2列

表: language

language_id (1,2,3)                 
language_code (et, en-us, de)
Run Code Online (Sandbox Code Playgroud)

现在我总是把language_id作为其他表的外键,

哪个更好?

分发language_id为外键,然后联接得到language_code.

要么

language_id完全忽略我们所拥有的

表: language

language_code (et, en-us, de)
Run Code Online (Sandbox Code Playgroud)

然后,当我们想知道用户的母语是什么时,我们将只将代码作为外键分发,并且不需要任何连接.

意见?

sql database-normalization

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

Angular 2 Chrome DOM渲染问题

我们的团队(不仅是我的电脑)对Angular 2有一个奇怪的渲染问题,这只发生在Chrome中.

也就是说,在应用程序导航或在应用程序中期刷新时,DOM中的许多项目都是不可见的.例如.其中包含文本的段落和标题,但不为最终用户呈现文本,但文本在检查器DOM中可见.

如果在检查器中编辑随机CSS属性,DOM将重新获得可见性.这个CSS甚至不必适用于手头的隐形DOM项目,ala.不可见的项目可以是标题中的一个段落,并且打开/关闭随机页脚跨度的顶部位置将使标题段落重新获得可见性.

在切换随机CSS元素之前 在切换随机CSS元素之前

切换随机CSS元素后 切换随机CSS元素后

这种情况发生在应用了固定加载程序的页面上,例如.具有固定位置,超高z指数并包含整个屏幕的组件.显示此页面加载器直到ngOnInit完成,这意味着它在大多数情况下都非常快.禁用此加载程序似乎解决了这个问题.

当页面加载后加载var值时,有时会在{{var}}标记中发生这种情况.

我们尝试用任何一个切换装载机

*ngIf="true/false"
Run Code Online (Sandbox Code Playgroud)

要么

[style.display]="block/none"
Run Code Online (Sandbox Code Playgroud)

这些解决方案都不起作用,一些dom仍然是看不见的.

有没有人知道为什么会这样?

google-chrome angular2-template angular2-changedetection angular2-components angular

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

Android请求ACCESS_NOTIFICATION_POLICY并静音电话

我是初学Android开发人员,手头有一个有趣的问题.我试图用手机静音

AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误

java.lang.SecurityException: Not allowed to change Do Not Disturb state
Run Code Online (Sandbox Code Playgroud)

现在我不明白这一点,因为我正在使用EasyPermissions(https://github.com/googlesamples/easypermissions)并请求许可

Manifest.permission.ACCESS_NOTIFICATION_POLICY
Run Code Online (Sandbox Code Playgroud)

但它并没有要求我在应用启动时允许任何内容.我认为这是因为ACCESS_NOTIFICATION_POLICY是一个非危险的权限,因此在安装时被授予,我也将其添加到我的manifest.xml中,因此

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作,我的应用程序崩溃,因为它抛出"不允许更改为请勿打扰状态"错误.很奇怪我发现我可以使用以下代码请求进入"请勿打扰访问"屏幕

Intent intent = new Intent(
                    android.provider.Settings
                            .ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
 startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?为什么我不能将此权限作为正常权限申请?我是否真的必须通过允许我的应用程序静音手机的意图?

android android-permissions

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

Angular 6 + Popper.js(没有 jQuery)

我正在尝试将 Popper.js 设置为使用 angular 5,而无需引导程序或 jquery。我尝试按照此https://github.com/FezVrasta/popper.js/#react-vuejs-angular-angularjs-emberjs-etc-integration 进行操作,但这并不是角度应用程序的 A 到 B 点描述。

我通过 npm 安装了 Popper.js

npm install popper.js --save
Run Code Online (Sandbox Code Playgroud)

然后我选择将 esm 模块捆绑到我的 angular-cli 脚本中

"scripts": [
                   (...)
        "../node_modules/popper.js/dist/esm/popper.js"
      ],
Run Code Online (Sandbox Code Playgroud)

由于 esm/popper.js 导出 Popper 变量如下。

var Popper = function () {
Run Code Online (Sandbox Code Playgroud)

我想我会像这样在我的角度模板中声明 popper 变量

declare var Popper;
Run Code Online (Sandbox Code Playgroud)

唉,我运气不好。

在此处输入图片说明

有人对如何正确实现这一点有想法吗?

angular2-template angular popper.js angular5 angular6

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

获取帐单状态代码以在WooCommerce中显示名称

我拼命地试图了解WooCommerce如何将某些国家/地区的县/州名称转换为数据库字段常量,然后再转换回。

即。

我有一位来自希腊的客户,恰巧来自一个县/州,我在此键盘上没有字母要命名。

在此处输入图片说明

显然,即使WooCommerce也没有字母,因为在数据库中,县/州也保存为“ D”。

我可以使用什么功能将其恢复为前端形式

在此处输入图片说明


编辑1。

我发现了这样的东西,但不确定如何使用。

在此处输入图片说明

php wordpress countries states woocommerce

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

PHP 7.2 finfo魔术文件

我有一个Laravel 5项目,我们让用户下载.ai(插图文件)。问题是Laravel将.ai文件检测为application / pdf。

我正在使用此功能检测MIME类型

$type = File::mimeType( $_path );
Run Code Online (Sandbox Code Playgroud)

我也尝试使用这种方法,但是得到了相同的结果

$finfo = finfo_open(FILEINFO_MIME);
$mimetype = $finfo->file($_path);
finfo_close($finfo);
Run Code Online (Sandbox Code Playgroud)

我认为,PHP不知道什么是.ai文件是一个问题。我对finfo进行了更深入的研究,我了解默认的mime定义已编译到PHP中,但是我看到finfo_open具有第二个参数“ magic_file”,我认为这是您可以在其中插入其他mime定义文件的路径的地方。 。

我尝试使用Ubuntu的/etc/magic.mime文件,但finfo给了我

ErrorException: finfo_open(): Warning: offset `application\/activemessage' invalid in
Run Code Online (Sandbox Code Playgroud)

错误。我认为这是因为magic.mime文件的格式不正确。

在线上的大多数主题都会创建自定义PHP函数或其他一些技巧来检测mime类型,但我觉得这不是这里的正确解决方案。

在哪里可以找到最新的mime定义文件,如何将它们加载到PHP或finfo中?

我的环境:

Ubuntu 16.04
PHP 7.2
Run Code Online (Sandbox Code Playgroud)

php mime-types libmagic

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