小编dan*_*v91的帖子

Angular 2 - 全局CSS文件

是否可以向Angular 2添加全局CSS文件?目前,我有许多具有相同按钮样式的不同组件 - 但每个组件都有自己的CSS文件和样式.这对变化感到沮丧.

我在Stack Overflow上的某个地方读到了:

import { ViewEncapsulation } from '@angular/core'; //add this

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
  encapsulation: ViewEncapsulation.None            //add this
})
Run Code Online (Sandbox Code Playgroud)

所以我在根组件中添加了ViewEncapsulation行,然后将CSS样式添加到根应用程序CSS(app.component.css)并从单个组件CSS文件中删除了CSS样式,并且它不起作用.

当然有一种方法可以添加全局CSS文件?我是否需要向各个组件添加内容以使其访问全局CSS文件?

css angular-cli angular

50
推荐指数
2
解决办法
5万
查看次数

Python - time.time() 和 datetime.datetime.utcnow().timestamp() 返回不同的时代

这实际上是两个问题:第一,无论时区如何,所有机器上的纪元(Unix)时间戳是否都相同(假设它们的系统时钟是正确的)?

我问是因为我已将代码部署到 AWS Lambda,该代码使用 datetime 模块生成纪元时间戳。当我们提取数据时,我试图转换为本地时间字符串(也使用日期时间),结果与预期的时间相差 2 小时。然后我开始测试以下代码:

import datetime
import time

print(time.time()) #1
print(datetime.datetime.utcnow().timestamp()) #2

print#1: 1554747526.775873
print#2: 1554783526.775873
Run Code Online (Sandbox Code Playgroud)

在我的本地机器上运行,它们相差两个小时。我将上述代码部署到 AWS Lambda,它们返回相同的值。在我的机器上有什么不同?下面的屏幕截图显示了在 AWS Lambda(左)和我的本地机器上运行的相同代码。我的系统时钟是正确的。

time.time() 与 datetime.utcnow().timestamp()

python datetime utc

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

加快角材料的自动完成速度或替代方法

我正在使用Angular Materials自动完成功能,以允许用户搜索以下格式的字符串:“ [ID#]-[文本描述]”。数据在页面加载开始时就被预先检索,并包含大约39,000个字符串。

我的HTML代码是:

<md-input-container>
    <input mdInput placeholder="TSN Search" [mdAutocomplete]="auto" [formControl]="TSN_Ctrl">
</md-input-container>

<md-autocomplete #auto="mdAutocomplete">
    <md-option *ngFor="let tsn of filtered_TSNs | async" [value]="tsn">
        {{ tsn }}
    </md-option>
</md-autocomplete>
Run Code Online (Sandbox Code Playgroud)

我的打字稿代码是:

TSN_Ctrl: FormControl = new FormControl();
filtered_TSNs: any;

constructor(){
    this.filtered_TSNs = this.TSN_Ctrl.valueChanges
        .startWith(null)
        .map(val => val ? this.filter_TSNs(val) : this.dataService.tsnTitles.slice());
}

private filter_TSNs(val: string) {
    return this.dataService.tsnTitles.filter(option => new RegExp(`^${val}`, 'gi').test(option));
}
Run Code Online (Sandbox Code Playgroud)

我本质上使用的是Angular Materials示例中的标准代码,略有改动。

自动完成功能非常慢,而且基本上没有响应。我知道有很多选项(39k字符串),但它已预先检索并本地存储。

我可以做些什么来加快速度吗,还是列表中只是字符串太多?如果我将过滤器方法和字符串修改为仅包含ID字段,是否可以加快此过程?我是否需要使用完全不同的库(即,如果已知Angular Materials自动完成速度较慢)?

autocomplete angular-material2 angular

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

为 PrimeNG 组件编辑 CSS

我目前正在使用 Angular 4、Angular Materials 和 PrimeNG 组件开发用户界面。

我正在使用的最新组件是来自 PrimeNG 的 MultiSelect 组件:https ://www.primefaces.org/primeng/#/multiselect

我只是想让组件的宽度适合父组件的 100%。

是否需要遵循特定过程来编辑此组件的 CSS 类?文档说对内联使用“样式” - 这是否意味着:

<p-multiSelect [options]="cars" [(ngModel)]="selectedCars" [defaultLabel]="defaultLabel" style="width: 100%;"></p-multiSelect>
Run Code Online (Sandbox Code Playgroud)

因为这行不通。

它还说使用“styleClass”作为属性来添加样式 CSS 类。你怎么用这个?

最后,他们提供了 PrimeNG 组件在网站上使用的 CSS 类列表(例如 ui-multiselect)。当我尝试通过在 Angular 组件 CSS 中声明它来修改“ui-multiselect”时,它仍然不起作用。

有任何想法吗?我究竟做错了什么?

html css primeng angular

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

Angular 2 CLI - 部署

我使用Angular 2 CLI构建了一个Angular 2应用程序.我的问题是,现在我想将应用程序部署到本地服务器,作为其他人可以查看的临时环境.

大多数使用Angular 2 CLI的教程都显示了一个dist文件夹,该文件夹似乎是在使用CLI首次创建项目时生成的.我只能dist使用生成文件夹ng build.我假设Angular 2 CLI更改了最初dist文件夹是初始文件夹结构的一部分,但现在它只在使用时生成ng build

作为测试,我将生成的dist文件夹复制到wwwWAMP服务器的文件夹[ http:// localhost:8080/Project/dist /]以尝试运行应用程序...浏览器控制台显示:

Failed to load resource: the server responded with a status of 404 (Not Found)      http://localhost:8080/inline.js
Failed to load resource: the server responded with a status of 404 (Not Found)      http://localhost:8080/bundle.js
Run Code Online (Sandbox Code Playgroud)

它在本地服务器的根目录中查找所有资产,而不是将根目录设置为dist文件夹中index.html的位置.所有的图像和图标都有同样的问题......我想我没有为相对路径配置一些东西......我该怎么办?

deployment angular-cli angular

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

对于Textarea - Angular,类型'HTMLElement'上不存在属性'value'

使用Angular 4(typescript),我有以下HTML代码:

 <div *ngIf="dataService.selected_markers.length == 0" id="tsnPasteContainer">
      <form style="width: 100%; height: 100%">
        <textarea id="tsn_list" style="width: 100%; height: 100%" type="text" name="tsn_list" placeholder="e.g. 2001311,2425302,2153542,2435974"></textarea>
      </form>
    </div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用以下内容将用户输入的数据输入textarea:

public parseTSNs(){
    let tsnString = document.getElementById("tsn_list").value;
    console.log("User inputted string: " + tsnString);
}
Run Code Online (Sandbox Code Playgroud)

该功能由按钮调用.

代码未编译,原因如下:

Property 'value' does not exist on type 'HTMLElement'
Run Code Online (Sandbox Code Playgroud)

这应该是一个简单的功能.我究竟做错了什么?W3schools"从textarea获取价值"显示'.value'作为必需的功能!

html javascript typescript angular

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

Python - 使用 popleft() 遍历双端队列

我一直在寻找迭代双端队列的最佳方法,同时使用 popleft 使用第一个元素并减少每次迭代的队列。我基本上想弹出双端队列中的第一个,使用此值运行一些代码,然后执行相同的过程,直到双端队列中没有更多值为止。

我在网上找到的最好的方法是使用 try 和 catch 块来捕获 IndexError:

try: 
    while mydeque: 
        value = mydeque.popleft()
except IndexError: 
# handle empty mydeque
Run Code Online (Sandbox Code Playgroud)

当然,抛出异常并不是做到这一点的最佳方式。我也会捕获 while 循环中发生的任何 IndexError ,这并不理想。使用 for 循环不起作用,因为我会在迭代期间修改双端队列。

做到这一点的最佳方法是什么?

python loops deque

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

带分页的 DynamoDB Python 查询(不扫描)

我正在使用以下代码通过 DynamoDB 查询进行查询和分页:

class DecimalEncoder(json.JSONEncoder):
    def default(self, o):
        if isinstance(o, decimal.Decimal):
            return str(o)
        return super(DecimalEncoder, self).default(o)


def run(date: int, start_epoch: int, end_epoch: int):
    dynamodb = boto3.resource('dynamodb',
                              region_name='REGION',
                              config=Config(proxies={'https': 'PROXYIP'}))

    table = dynamodb.Table('XYZ')

    response = table.query(
        # ProjectionExpression="#yr, title, info.genres, info.actors[0]", #THIS IS A SELECT STATEMENT
        # ExpressionAttributeNames={"#yr": "year"},  #SELECT STATEMENT RENAME
        KeyConditionExpression=Key('date').eq(date) & Key('uid').between(start_epoch, end_epoch)
    )

    for i in response[u'Items']:
        print(json.dumps(i, cls=DecimalEncoder))

    while 'LastEvaluatedKey' in response:
        response = table.scan( ##IS THIS INEFFICIENT CODE?
            # ProjectionExpression=pe,
            # FilterExpression=fe,
            # ExpressionAttributeNames=ean,
            ExclusiveStartKey=response['LastEvaluatedKey'] …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-dynamodb dynamodb-queries

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