我对angular和rxjs很新.我正在尝试创建一个angular2应用程序,从静态服务的文本文件(本地服务器)获取一些数据,我想检索并使用Angular2的http提供程序和rxjs的映射在固定时间映射到Datamodel interval(5000).反映对服务的txt文件的任何更改.
使用rxjs 4.x我知道你可以Observable.interval(5000)用来完成这项工作,但它似乎不存在于rxjs 5中.我的解决方法当前刷新整个应用程序使用<meta http-equiv="refresh" content="5" >哪个重新加载整个页面,从而重新加载数据.
所以我真正想要的是使用observable进行此操作的一些方法,也许是为了检查是否发生了任何更改.或者只是重新加载数据.
任何帮助或其他/更好的方式将非常感谢.
到目前为止我所拥有的:
@Injectable()
export class DataService {
constructor(private http:Http){}
getData(url) {
return this.http.get(url)
.map(res => {
return res.text();
})
.map(res => {
return res.split("\n");
})
.map(res => {
var dataModels: DataModel[] = [];
res.forEach(str => {
var s = str.split(",");
if(s[0] !== "") {
dataModels.push(new DataModel(s[0], parseInt(s[1]), parseInt(s[2])));
}
});
return dataModels;
})
}
}
@Component({
selector: 'my-app',
template: `Some html to display the data`,
providers: …Run Code Online (Sandbox Code Playgroud) 我有一个网络应用程序.我正在尝试禁用/阻止当您专注于不同的表单输入时发生的滚动(即,当您通过表单中的输入元素前进时发生的滚动).
我已经禁用了滚动:
<script type="text/javascript">
$(document).ready(function() {
document.ontouchmove = function(e){
e.preventDefault();
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
要添加更多信息 - 我的页面包含一些"幻灯片".每个都是768x1024,它们在页面上"堆叠"(即页面是768x3072 [1024*3 = 3072]),当你点击链接我正在使用scrollTo jquery插件滚动到下一个"幻灯片"并.focus()在输入元素.
有谁知道如何做到这一点?
我在Angular 4应用程序中使用了一些后端渲染模板.登录后我需要重新加载这些模板.可以请别人帮忙吗?我试过类似的东西
import { Component, Compiler } from '@angular/core';
this.compiler.clearCache();
this.compiler.compileModuleAndAllComponentsAsync(SharedModule);
Run Code Online (Sandbox Code Playgroud)
我看到,该模板在网络工具中重新加载,但Angular组件不会呈现.
我使用角4作为前端,而内腔5.4作为后端.
我的要求是将一些数据导出为excel和zip文件.
使用{ saveAs }从'file-saver/FileSaver';包导入文件下载.
Angular 4代码:
downloadExcel() {
const type = 'application/vnd.ms-excel';
const headers = { headers: new Headers({ 'Accept': type }) };
const filename = 'file.xls';
this.http.get('http://10.2.2.109/Download/exportExcel', headers)
.toPromise()
.then(response => this.saveToFileSystem(response, type, filename));
return false;
}
private saveToFileSystem(response, __type, filename) {
const contentDispositionHeader: string = response.headers.get('Content-Disposition');
if (contentDispositionHeader !== null) {
const parts: string[] = contentDispositionHeader.split(';');
//const filename = parts[1].split('=')[1];
const blob = new Blob([response._body], { type: __type });
saveAs(blob, filename);
} else …Run Code Online (Sandbox Code Playgroud) 我首先安装了npm并确保它是最新的.然后我尝试安装角度,但我遇到了错误
~ kode$ sudo npm install -g @angular/cli
Password:
npm WARN ajv-keywords@3.1.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm ERR! path /usr/local/bin/ng
npm ERR! code EEXIST
npm ERR! Refusing to delete /usr/local/bin/ng: ../lib/node_modules/angular-cli/bin/ng symlink target is not controlled by npm /usr/local/bin
npm ERR! File exists: /usr/local/bin/ng
npm ERR! Move it away, and try again.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/kode/.npm/_logs/2018-02-15T13_10_57_836Z-debug.log
Run Code Online (Sandbox Code Playgroud)
我不明白它是如何告诉我文件已经存在但当我运行任何ng命令时它告诉我:
ng: …Run Code Online (Sandbox Code Playgroud) 我有一个元素,我想在每次点击按钮时向左移动800像素.
我写了下面的代码只是它移动我的元素一次而不是每次点击,任何人都可以建议正确的方法吗?
$('.hero-nav li.prev a').click(function(){
$('.hero-carousel').animate({'margin-left':'-640px'}, 1000);
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过Angular 2 Mobile Toolkit(https://mobile.angular.io/)创建一个新的移动应用程序.
当我输入:时ng new hello-mobile --mobile,我收到此错误:
`The option '--mobile' is not registered with the new command.
Run 'ng new --help' for a list of supported options.
Run Code Online (Sandbox Code Playgroud)
在ng new --help我看不到任何东西mobile.
这是我的ng -v结果:
@angular/cli: 1.0.2
node: 6.10.1
os: win32 x64
Run Code Online (Sandbox Code Playgroud)
我错过了什么?这个工作只与其他一些角度版本?
我有以下代码:
<li *ngFor="let item of serviceList; let i = index;">
<button *ngIf="currentTools contains i" (click)="processService(item)">
Run Service</button>
</li>
Run Code Online (Sandbox Code Playgroud)
Angular 2中有什么方法可以检查数组是否包含我项目的索引?
我基本上只想显示索引号在数组中的项目(currentTools),该数组在不同的过程中被动态修改。