我zooming/panning使用d3 创建了图形SVG.我正在尝试用相同的图形创建Canvas.我的问题是,当涉及到Canvas图形的缩放和平移时,图形正在消失,我无法弄清楚原因.我创建了两个JSBin来显示两者的代码.有人可以帮助我.
我的SVG缩放代码如下所示:
// Zoom Components
zoom = d3.zoom()
.scaleExtent([1, dayDiff*12])
.translateExtent([[0, 0], [width, height]])
.extent([[0, 0], [width, height]])
.on("zoom", zoomed);
function zoomed(){
t = d3.event.transform;
xScale.domain(t.rescaleX(x2).domain());
xAxis = d3.axisBottom(xScale).tickSize(0).tickFormat(d3.timeFormat('%b'));
focus.select(".axis--x").call(xAxis); //xAxis changes
usageLinePath.attr('d',line); //line path reference, regenerate
}
Run Code Online (Sandbox Code Playgroud)
我的Canvas缩放代码如下所示:
// Zoom Components
zoom = d3.zoom()
.scaleExtent([1, dayDiff*12])
.translateExtent([[0, 0], [width, height]])
.extent([[0, 0], [width, height]])
.on("zoom", zoomed);
function zoomed() {
t …Run Code Online (Sandbox Code Playgroud) 我已经阅读了Rx.js重复文档,试图找出如何根据我收到的响应继续调用api API.我打电话给一个API只能一次发回2k记录的人.API将为我发回一个值以便发送它,以便我可以继续接收记录,直到它们返回完成值.
所以流程如下:
GET请求查询参数reqMode='':reqMode使用带有value或的最后一个数组检索响应done.value然后我需要发出相同的请求,但发送reqMode带有值的参数.done那么我将停止并返回自第一次通话以来的所有记录.我什么时候得到第一组值subscribing normally,但这是我在阅读文档后的尝试,但这没有意义:
getRecords(){
let url = this.url + 'reqMode=';
return this.http.get(url)
.doWhile() //What would I do here
}
Run Code Online (Sandbox Code Playgroud)
尝试.doWhile使用类型的Observable时Observable<response>.我正在寻找使用Observables的任何替代方案,以满足我的需求.
我在离子2中使用Nav.我需要保留带有左右菜单的全局标题.目前我的菜单工作正常,但我有一个小问题.当我更改根页面时,我想更改全局标题的标题,但我似乎无法理解如何这样做.我有以下代码:
dashboard.component.html - 包含导航的页面
<ion-header>
<ion-navbar>
<button menuToggle="left" start>
<img src="build/images/brite-logo-bulb.png" width="auto" height="25px"/>
</button>
<ion-title>
// how can i change the title dynamically
</ion-title>
<button menuToggle="right" end (click)="clearNewAlerts()">
<ion-icon name="information-circle">
<div class="notice-circle" *ngIf="newAlerts != 0">{{newAlerts}}</div>
</ion-icon>
</button>
</ion-navbar>
</ion-header>
<!--Left Navigation Menu HTML-->
<ion-menu [content]="content" type="overlay">
<img src="build/images/brite-logo.png" width="100px" height="auto"/>
<ion-content>
<div class="menu-greeting">Hello, {{firstName}}!</div>
<hr class="brite-nav"/>
<ion-list no-lines>
<button class="brite-nav-item" ion-item (click)="openPage('home')" menuToggle>
Home
</button>
<button class="brite-nav-item" ion-item (click)="openPage('bills')" menuToggle>
Bills
</button>
</ion-list>
<hr class="brite-nav"/>
</ion-content>
</ion-menu>
<!--Right …Run Code Online (Sandbox Code Playgroud) 我使用的是第三方库mydatepickerrange的Angular 2。在angular-cli-.json我正在加载这样的包:
"packages": {
...
"mydaterangepicker" :{
"map" : "node_modules/mydaterangepicker",
"defaultExtension": "js"
}
Run Code Online (Sandbox Code Playgroud)
我想在此软件包后加载我的style.css,以覆盖它的样式。我不确定该怎么做,有人遇到过类似情况吗?这是我在angular-cli.json下面的礼物:
{
"project": {
"version": "1.0.0-beta.19-3",
"name": "..."
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"addons": [],
"packages": {
"moment": {
"map": "node_modules/moment/moment.js", …Run Code Online (Sandbox Code Playgroud) 我正在使用 DynamoDB UpdateItem来更新我的数据库中的记录。像这样的基本功能对我有用。
var user = {
userID: '123213',
name: 'John Doe',
age: 12,
type: 'creator'
};
var params = {
TableName:table,
Key:{
"UserID": user.userID
},
UpdateExpression: "set Name = :r, Age=:p, Type=:a",
ExpressionAttributeValues:{
":r":user.name,
":p":user.age,
":a":user.type
},
ReturnValues:"UPDATED_NEW"
};
docClient.update(params, function(err, data) {
if (err) {
console.error("Unable to update item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("UpdateItem succeeded:", JSON.stringify(data, null, 2));
}
});
Run Code Online (Sandbox Code Playgroud)
但...
如果我只想更新一个属性,即名称,如下所示:
var user = {
userID: '123213',
name: 'John Smith'
};
var …Run Code Online (Sandbox Code Playgroud) 在离子中,我在resolve初始化控制器之前使用Ui-Router的功能解析我的数据.截至目前,我没有给$inject我EventService到控制器.所述EventService的getEvents()控制器被初始化之前方法解决的数据.一切都以这种方式正常工作,但现在我正在尝试实施Ion Refresher.我可以很容易地刷新我的$scope.events阵列控制器内,腹胀控制器本身,因为我会$inject在EventService到控制器,这也意味着,每一个使用相同的数据控制器必须包含的逻辑来处理刷新.刷新控制器外部数据的最佳方法是什么?这是最好的方法吗?
事件状态定义和数据解析
.state('tab.events', {
url: '/events',
views: {
'tab-event': {
templateUrl: 'views/events.html',
controller: 'EventsController',
resolve: {
events: function (EventService) {
return EventService.getEvents(); //resolves data before ctrl initialized
}
}
}
}
})
Run Code Online (Sandbox Code Playgroud)
事件控制器
(function() {
'use strict'
angular
.module('app.events')
.controller('EventsController', EventsController);
EventsController.$inject = ['$scope','events'];
function EventsController ($scope,events) {
$scope.events = events;
}
}
)();
Run Code Online (Sandbox Code Playgroud)
膨胀事件控制器 - 示例
(function() {
'use strict' …Run Code Online (Sandbox Code Playgroud) 我目前正在使用一个复选框来切换8个表单元素上的disabled属性.我在每个元素上都使用了ngDisabled指令.我正在寻找一种方法,我不必将指令放在8个元素中的每一个上.这可能吗?
复选框切换
<input type="checkbox" ng-model="aircraftOnGround" />
Run Code Online (Sandbox Code Playgroud)
当前工作在每个表单元素上使用的Disabled指令
ng-disabled="aircraftOnGround"
Run Code Online (Sandbox Code Playgroud)
Codepen: CodePen
angular ×3
angularjs ×2
javascript ×2
angular-cli ×1
aws-lambda ×1
canvas ×1
d3.js ×1
ionic ×1
ionic2 ×1
lambda ×1
rxjs ×1
rxjs5 ×1
svg ×1
typescript ×1