我发现许多ActivatedRouteObservables喜欢params或url订阅但未取消订阅的例子.
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params
// (+) converts string 'id' to a number
.switchMap((params: Params) => this.service.getHero(+params['id']))
.subscribe((hero: Hero) => this.hero = hero);
}
Run Code Online (Sandbox Code Playgroud)
Observable?Router.routerState?我正在使用离子 v1.0.0并且不了解并行历史管理的$ionicHistory方式.
特别是在Android设备上,当使用(以前的硬件)后退按钮时,我的Angular应用程序有时表现得很奇怪,我想了解原因.(示例:向后导航打开$ionicGoBack()很久以前关闭的视图)
对我来说,似乎有些ui-router导航创建了新的历史堆栈,而其他人则将历史项目放在根历史中,即使从状态到子状态应该附加到状态记录为IMO的历史记录中.
问题
ui-sref或$state.go(...)将历史项附加到新创建的堆栈?root?很抱歉没有更具体,但应用程序相当复杂,我不知道如何在一个plunkr中隔离问题.也许我错过了一篇好的文档......
我不明白为什么这段代码会生成TypeScript错误.(这不是原始代码,有点派生,所以请忽略示例中的无意义):
interface Images {
[key:string]: string;
}
function getMainImageUrl(images: Images): string {
return images.main;
}
Run Code Online (Sandbox Code Playgroud)
我收到错误(使用TypeScript 1.7.5):
错误TS2339:"图像"类型中不存在属性"main".
当然,写作时我可以摆脱错误:
return images["main"];
Run Code Online (Sandbox Code Playgroud)
我不想使用字符串来访问该属性.我能做什么?
意见
从包含广告位的https提供单页应用程序网页.这些广告位由一些出价逻辑填充,广告通过JavaScript在IFRAME文档中编写.
首次加载显示广告图片,例如https://tpc.googlesyndication.com/pagead/imgad?id=CICAgKDLu47R8QEQARgBMggW4D7gy4qb5g
当用户在页面上操作时,会发生新的广告出价并重新加载广告位.在我们的例子中:呈现img具有相同src属性的元素.
所有其他浏览器(Chrome,IE,Safari)显示此图像,取自本地缓存.
不是这样:Firefox(Windows,Mac;版本52)的行为如下:
alt在白色背景的文本img说"错误加载图像"(我完全知道德语信息)304或"从缓存")附加信息:
https例
在下一页,您可以看到错误(我想这是一个FireFox错误):
http://bartelt.team.netzathleten-media.de/2017-03-30_MD-230-refresh-bug/
5秒后,广告消失(仅限FireFox).
问题
你能告诉我一些可能导致这个问题的原因吗?
有没有办法以某种方式调试onerror由外国代码(来自广告服务器)动态创建的图像?
这真的很奇怪,我非常感谢你的帮助.
很高兴能够在浏览器中的Cordova/Ionic应用程序中测试许多案例.但我还没有找到一种伪造Android(以前的硬件)后退按钮的方法.
如果有一个额外的抽屉带有一个后退按钮或一个组合键(例如Alt + Ctrl + <)会更好,这会触发一个让Ionic认为按下Android后退按钮的事件.
是否可以使用JavaScript触发此类事件?怎么样?
要明确:我在网络浏览器中测试离子应用时只想要这个.所以Android专家:不需要在这里提供Java代码 - 我们不在Android设备或模拟器上.并且:我非常确定喜欢$ionicHistory.goBack()或$window.history.back()不喜欢的东西.
我正在LocationManager.requestLocationUpdates()使用LocationManager.GPS_PROVIDER和注册a 跟踪GPS位置LocationListener.
我的问题:
所有经过测试的设备(Sony neo,Sony active,Moto G)都会产生一些Location物体getTime():
<trkpt ...><time>2014-05-24T10:24:59.000Z</time></trkpt>
<trkpt ...><time>2014-05-24T10:25:00.000Z</time></trkpt>
<trkpt ...><time>2014-05-24T10:25:01.000Z</time></trkpt>
<trkpt ...><time>2014-05-24T10:25:02.000Z</time></trkpt>
<trkpt ...><time>2014-05-24T10:25:03.000Z</time></trkpt>
Run Code Online (Sandbox Code Playgroud)
由于我正在计算速度,倾斜和与气压高度合并,1s(1000ms)分辨率太不精确了.而且我不相信,修复都是完全正确的.000.
我的问题:
System.currentTimeMillis()作为我的跟踪点的时间戳是更好的,或者GPS定位通常远远落后于"实时",计算的位置实际上是过去的那些(落后几秒)?
备注:
我有一个在Node.js和浏览器中使用的内部库.它有许多文件,与Grunt任务和不同的序言连接,一个用于浏览器,一个用于Node:
浏览器:
// dependent 3rd-party libs like Mustache are already global
window.myLib = { /*just a namespace object filled with stuff later*/ }
// then comes the plain javascript which just adds elements to myLib.
// This part is identical to that used in Node
// example:
myLib.renderPartDetail = function (...) {...};
Run Code Online (Sandbox Code Playgroud)
节点:
var Mustache = require('mustache');
var myLib = {};
module.exports = myLib;
// then comes the plain javascript which just adds elements to myLib.
// This part is …Run Code Online (Sandbox Code Playgroud) 我认为TypeScript(基本上)是ECMAScript 6(又名2015),附带了类型注释.
我的TypeScript编译器(1.6.2)抱怨以下代码:
if (calc.distance > Number.EPSILON) {
...
}
Run Code Online (Sandbox Code Playgroud)
错误TS2339:'NumberConstructor'类型中不存在属性'EPSILON'.
是否存在打字问题或者TypeScript(还)是否真的是ES6的超集?
我还没有尝试过这样的前沿之类的东西Map,WeakMap,承诺,发电机,...
TypeScript只是稍微落后于ES6,还是走向另一个方向?我应该通过Babel运行TypeScript编译器输出吗?
刚开始使用TypeScript,我不想背错马.
我想使用 R 进行密集的、非交互式计算/数据分析。分析请求将从 Node.js/Express 后端调用。
输入结构是约 100kB 的 JSON,当然计算应该异步运行。R 中数据分析的输出数据要小得多(~5kB)。也可以使用二进制数据格式(例如 protobuf)。不涉及可视化。
我是 R 的新手,但发现了一个利用 ZeroMQ(作为客户端)的包。已经在另一个项目中使用 øMQ => 将是我最喜欢的通信方式,但我对任何类型的高效和稳定的通信(例如 Redis)持开放态度。
monit用来观察和重新启动一个进程,就像我用 node 做的那样。)环境:Debian/Ubuntu,也可用:Redis、MongoDB
我在Android应用中使用productFlavors并buildConfigField启用/禁用功能:
productFlavors {
vanilla {
buildConfigField "boolean", "FEATURE_SAR", "false"
}
edge {
applicationIdSuffix ".edge"
buildConfigField "boolean", "FEATURE_SAR", "true"
}
}
Run Code Online (Sandbox Code Playgroud)
还没有找到一种方法来禁用Android Studio代码样式警告说"'!BuildConfig.FEATURE_SAR'可以简化为'false'".
正如你在我的代码中看到的那样,我尝试了很多方法,但没有一个方法可行.我无法在Android Studio中找到可以禁用此功能的设置.
@Override
@SuppressWarnings("SimplifiableIfStatement") // no effect
@SuppressLint("SimplifiableIfStatement") // no effect
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Set<Integer> suppressPositions = new HashSet<>();
//noinspection SimplifiableIfStatement <-- no effect
if (!BuildConfig.FEATURE_SAR) {
suppressPositions.add(IDX_SAR);
}
SimpleAdapter adapter = ViewUtils.createSimpleAdapter(
getContext(), MENU_RESOURCES, suppressPositions);
setListAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud)
当然,有一些方法可以通过使用资源来解决这个问题,但由于某些原因,我无法在所有情况下使用资源.所以问题只是如何禁用这些警告,而不是如何更好地处理Android/Gradle中的配置管理.
我有一个组件显示使用ng2-bootstrap tabset和tab.
例:
<tabset>
<tab heading="Info" [active]="tabs[0].active">
<account-data *ngIf="tabs[0].active"></account-data>
</tab>
<tab heading="Users" [active]="tabs[1].active">
<manage-users *ngIf="tabs[1].active"></manage-users>
</tab>
<tab heading="Billing" [active]="tabs[2].active">
<account-billing *ngIf="tabs[2].active"></account-billing>
</tab>
</tabset>
Run Code Online (Sandbox Code Playgroud)
注意:tabs[N].active由组件控制并已同步选项卡更改和路由.但我觉得我的做法是错误的,因为在选定的标签内部管理路由很困难.让我们看第二个标签,在一天结束时它应该管理以下子路径:
.../users -> provide list of users
.../users/new -> create new user
.../users/:id -> show a particular user
.../users/:id/edit -> edit a particular user
Run Code Online (Sandbox Code Playgroud)
这并不容易,因为显示标签的组件已经使用了这条路线:
.../:tab
Run Code Online (Sandbox Code Playgroud)
如果有这样的事情会更容易:
<tabset>
<tab heading="Info" [routerLink]="['info']"></tab>
<tab heading="Users" [routerLink]="['users']"></tab>
<tab heading="Billing" [routerLink]="['billing']"></tab>
</tabset>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)
有人为此解决了吗?这个问题应该很常见......
我正在为单页面应用程序(Angular)开发一个带有Spring Boot的REST API后端.
在Spring Boot的引擎盖下发生了很多神奇的事情,我还不明白.为了获得更好的安全性("强化"),我不希望Spring安装Spring MVC等使用的任何多余的服务处理程序.只有REST端点消耗和生成JSON,没有错误路由,没有favicon.ico等.没有静态内容(SPA由nginx提供,是一个单独的部署单元).
在启动期间,日志记录如下所示:
[19:04:06.146] INFO andler.SimpleUrlHandlerMapping [main]: Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[19:04:06.146] INFO andler.SimpleUrlHandlerMapping [main]: Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[19:04:06.190] INFO andler.SimpleUrlHandlerMapping [main]: Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
Run Code Online (Sandbox Code Playgroud)
如何将我的应用程序配置为专门为API端点提供服务?
我正在将一个jQuery webapp移植到AngularJS(< - beginner!).
为了整合bxSlider和一些模板化的东西,我写了以下指令:
[编辑]最好看看jsFiddle jsfiddle.net/Q5AcH/2/ [/ Edit].
angular.module('myApp')
.directive('docListWrapper', ['$timeout', function ($timeout) {
return {
restrict: 'C',
templateUrl: 'partials/doc-list-wrapper.html',
scope: { docs: '=docs'},
link: function (scope, element, attrs) {
$timeout(function () {
element
.children('.doc-list')
.not('.ng-hide')
.bxSlider(); // <-- jQuery plugin doing heavy DOM manipulation
}, 100); // <-------------- timeout in millis
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
没有$timeout问题,bxSlider无法计算新创建的元素的大小或根本找不到它们.
我有点担心使用长超时值可能会导致闪烁而使用短值可能会导致慢速机器出现问题.
在我的实际应用程序中(当然有更多数据和更多部分而不是jsFiddle)我发现了一些奇怪的东西:
当我使用超时值时,使用10或更多毫秒就足够了,所以jQuery插件bxSlider找到一个完整的DOM.等待时间较少(9毫秒或更少),插件无法正常包装<ul>.
但是仍然存在非常讨厌的闪烁问题.
在小提琴中,可能是由于DOM较小,Chrome + Firefox中只有Internet Explorer 10才会出现闪烁现象.
我不想依赖于经验值,因为$timeout它可能高度依赖于机器,操作系统,渲染引擎,角度版本,血液预测......
有一个强大的解决方法吗?
我已经找到了一些带有事件监听器($on, …
typescript ×4
javascript ×3
android ×2
angular ×2
angularjs ×2
node.js ×2
browserify ×1
cordova ×1
debugging ×1
ecmascript-6 ×1
firefox ×1
geolocation ×1
gps ×1
html ×1
image ×1
ipc ×1
jquery ×1
r ×1
spring ×1
spring-boot ×1
spring-mvc ×1
webpack ×1
zeromq ×1