是否可以向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文件?
这实际上是两个问题:第一,无论时区如何,所有机器上的纪元(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(左)和我的本地机器上运行的相同代码。我的系统时钟是正确的。
我正在使用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自动完成速度较慢)?
我目前正在使用 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”时,它仍然不起作用。
有任何想法吗?我究竟做错了什么?
我使用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的位置.所有的图像和图标都有同样的问题......我想我没有为相对路径配置一些东西......我该怎么办?
使用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'作为必需的功能!
我一直在寻找迭代双端队列的最佳方法,同时使用 popleft 使用第一个元素并减少每次迭代的队列。我基本上想弹出双端队列中的第一个,使用此值运行一些代码,然后执行相同的过程,直到双端队列中没有更多值为止。
我在网上找到的最好的方法是使用 try 和 catch 块来捕获 IndexError:
try:
while mydeque:
value = mydeque.popleft()
except IndexError:
# handle empty mydeque
Run Code Online (Sandbox Code Playgroud)
当然,抛出异常并不是做到这一点的最佳方式。我也会捕获 while 循环中发生的任何 IndexError ,这并不理想。使用 for 循环不起作用,因为我会在迭代期间修改双端队列。
做到这一点的最佳方法是什么?
我正在使用以下代码通过 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) angular ×5
angular-cli ×2
css ×2
html ×2
python ×2
autocomplete ×1
datetime ×1
deployment ×1
deque ×1
javascript ×1
loops ×1
primeng ×1
typescript ×1
utc ×1