小编ken*_*ken的帖子

条件语句中的顺序

可能重复:
php错误处于条件状态

我注意到很多PHP代码使用CONST == VARIABLE等条件语句.我长大的语法总是以相反的方式表达出来.这种结构有原因吗?

例:

 // this is the way I see it most typically represented in PHP
 if ( false == $foobar ) { // do this }

 // this is the way I normally do it
 if ( $foobar == false ) { // do this }
Run Code Online (Sandbox Code Playgroud)

php

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

把手和灰烬束

是否有可用于Handlebars,Ember或两者的Textmate 2.0软件包?

我找到了以下内容:

https://github.com/drnic/Handlebars.tmbundle

但它在2年内没有更新,我无法在Textmate 2中有效地为我工作(虽然我的方式可能是黑客攻击它是问题).

textmatebundles handlebars.js ember.js

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

测试是否已填充belongsTo关系

我有一个具有关系的余烬数据模型belongsTo,我想测试此关系中是否有任何值(又名外键引用)。我最初以为我可以这样说:

if(myModel.rel !== null) {
    // do something now that belongsTo relationship has a value
}
Run Code Online (Sandbox Code Playgroud)

但当然这是行不通的,因为它myModel.rel永远不会为空,而是某种 Ember 数据对象。好的。我将其调整为:

if(myModel.rel.content !== null) {
    // do something now that belongsTo relationship has a value
}
Run Code Online (Sandbox Code Playgroud)

这确实有效,但我觉得这可能有点太“hacky”了……有没有一种更干净、更 API 驱动的方式来在 Ember Data 中声明这个条件?

ember.js ember-data

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

d3事件未触发

我正在使用D3的弧形并附加了D3 drag处理程序来捕捉拖动.查看浏览器的调试器:

在此输入图像描述

您可以看到生成的Arc的路径确实正在侦听相应的事件,但回调从未被触发,并且没有向控制台报告JS错误.

用于添加处理程序(以及回调)的代码在这里.对于那些熟悉Ember的人来说,很棒,对于你们这些人我并没有尝试只显示相关的JS部分.

import { drag } from 'd3-drag';
import { arc } from 'd3-shape';
import { select } from 'd3-selection';

const uiArc = Ember.Component.extend({
  layout,
  tagName: '',
  init() {
    this._super(...arguments);
    Ember.run.schedule('afterRender', () => {
      this.svg = document.getElementById(this.elementId);
      this.addDragListeners(`#${this.elementId} .unselected`);
    });
  },

  addDragListeners(target) {
    drag.container = this;
    select(target).call(drag().on('start', this._dragStart));
    select(target).call(drag().on('drag', this._dragging));
    select(target).call(drag().on('end', this._dragEnd));
  },

  _dragStart(e) {
    console.log('drag starting', e);
  },
  _dragging(e) {
    console.log('dragging', e);
  },
  _dragEnd(e) {
    console.log('drag ending', e);
  },
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我弄清楚如何调试或建议可能出错的地方?

注意:我使用的是d3版本4,截至今日(2016年5月30日)的最新版本


对于其他上下文,负责绘制路径的Handlebars模板也是:

<path
  d={{arc}} …
Run Code Online (Sandbox Code Playgroud)

javascript event-handling d3.js ember.js

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

Docker 1.12 中的单机 Swarm

我想docker-compose在我的开发环境中创建文件并使用它来启动一台机器“群”。目标是让开发环境尽可能与 CI、QA 和 Prod 环境保持一致

我一年多以前使用过 docker,但发生了很多变化,我对使用 1.12 作为我的平台非常感兴趣。我的问题如下:

  1. “节点”和“物理机”有什么区别?一台机器(又名开发人员笔记本电脑)可以托管多个节点吗?我的猜测是一个节点是虚拟的,我应该能够拥有多个但不确定它。
  2. 假设对#1 的回答是可能的......这些不同的节点是否有任何理由不能成为“群工作者”以及在笔记本电脑上运行的单一“管理器”?

注意:我知道 VM 可以模拟其他机器——许多示例都是从这样做开始的——但我想避免运行任何 VM 以降低运行此设置的资源成本

有没有人可以参考我的单节点群的好例子?

docker docker-compose docker-swarm

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

如何将"keyof T"表示为String的子集?

Firebase 类型有一个接口IQuery,其equalTo()方法类型如下:

public equalTo(value: number | string | boolean | null, name?: string): IQuery;
Run Code Online (Sandbox Code Playgroud)

我有一个模拟库,试图模仿Firebase暴露的API表面,但在name参数的情况下,"string"的一般类型可以更具体:

 public equalTo(value: number | string | boolean | null, key?: keyof T): IQuery<T>
Run Code Online (Sandbox Code Playgroud)

通过声明keyof T我们得到一些非常有用的静态检查,我不想丢失,事实上直到TypeScript 2.8.3我似乎能够做到这一点但是当转移到2.9.xTypes of Types时,我现在得到这个错误:

类型'string'不能分配给'keyof T'类型.

对于更多上下文,我的模拟库中的类定义是:

 export default class Query<T = any> implements IQuery<T> { ... }
Run Code Online (Sandbox Code Playgroud)

<T>泛型类型为类型的数据结构,查询将返回的指标.

此外值得注意的是,T 总是被塑造为带字符串键的字典/哈希,因此keyof T将成为字符串值的子集,但在我的输入中,我没有说明这一点,所以我得到了Typescript带来问题的地方......我只是不知道如何表达keyof T必须是一个字符串.

typescript

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

Vuex 更改不影响模块

我有一个UserDialog组件,它利用 Vuex 状态树的一部分来确定它是否应该显示自己:

import { Component, Prop, Vue } from 'vue-property-decorator';
import { State, Getter, Mutation, Action, namespace } from 'vuex-class';
import { fk } from 'firemodel';
import { User } from '@/models/User';
const Users = namespace('users');

@Component({})
export default class UserDialog extends Vue {
  @Prop() public id!: fk;
  @Users.State public show: fk;
  @Users.Getter public selectedUser: User;
  @Users.Mutation public HIDE_USER_PROFILE: () => void;

  public get showDialog() {
    return this.show === undefined ? false : true;
  }

}
Run Code Online (Sandbox Code Playgroud)

我从父组件调用 …

vue.js vuex

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

jQuery .get缓存工作得太好了?

我正在使用jQuery .get()函数加载模板文件,然后通过定位特定的DOM元素将加载的HTML显示在页面的一部分中.它运作良好,但我最近意识到的原因让我感到困惑的是它正在缓存我的模板文件并屏蔽我所做的更改.

别误会我的意思......我喜欢和下一个人一样的缓存.我希望它在客户端缓存和服务器上的文件之间没有时间戳差异时进行缓存.然而,这不是正在发生的事情.为了使它更奇怪...使用相同的功能加载模板...一些模板文件正在加载更新而其他模板文件没有(更喜欢缓存版本而不是最近的更改).

下面是我使用的加载功能.

function LoadTemplateFile ( DOMlocation , templateFile , addEventsFlag ) {
    $.get( templateFile , function (data) {
        $( DOMlocation ).html(data);
    });
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

新细节:我一直在做一些调试,现在看到返回到成功函数的"数据"变量确实有更新的信息但是由于我还不清楚的原因是什么插入到DOM中的是旧版本.如何发生这种情况现在已成为我的问题.

jquery caching

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

领先的角色脱离了API调用

我正在尝试设置一个REST模型并且遇到一个让我感到困惑的问题:生成的API调用似乎删除了模型的第一个字母,因此无法检索数据(得到404错误).

我从设置商店开始:

App.Store = DS.Store.extend({
    revision: 11,
    adapter: DS.RESTAdapter.reopen({
        namespace: 'api/admin'
    })
});
Run Code Online (Sandbox Code Playgroud)

然后我设置了一个模型(在REST服务上称为"dbx_tables":

App.dbxTable = DS.Model.extend({
    name: "string",
    db_column: "string"
});
Run Code Online (Sandbox Code Playgroud)

然后是路线:

App.DbxRoute = Ember.Route.extend({
    model: function() {
        return App.dbxTable.find();
    }
});
Run Code Online (Sandbox Code Playgroud)

我已经开启了过渡记录:

App = Ember.Application.create({
    LOG_TRANSITIONS: true
});
Run Code Online (Sandbox Code Playgroud)

因此,当我启动应用程序时,它首先转换到"about"页面然后我点击"dbx"视图(我不确定为什么它说dbx.index而不仅仅是dbx):

DEBUG: ------------------------------- ember-1.0.0-rc.1.js:339
DEBUG: Ember.VERSION : 1.0.0-rc.1      ember-1.0.0-rc.1.js:339
DEBUG: Handlebars.VERSION : 1.0.0-rc.3 ember-1.0.0-rc.1.js:339
DEBUG: jQuery.VERSION : 1.9.1          ember-1.0.0-rc.1.js:339
DEBUG: ------------------------------- ember-1.0.0-rc.1.js:339
Transitioned into 'about'              ember-1.0.0-rc.1.js:339
Transitioned into 'dbx.index'          ember-1.0.0-rc.1.js:339
GET http://lifegadget-local/api/admin/bx_tables 404 (Not Found) jquery-1.9.1.js:8526 …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

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

TS 声明 test() 不是字符串上的属性?

我有一个简单的RegEx模式测试,我想在字符串上运行它;您可以在下面的示例中将其视为变量part

部分是一个字符串

但是,当我这样做时,红色波浪线表示以下错误:

类型“string”.ts(2339) 上不存在属性“test”

我正在使用 TS 3.2.2 并且我tsconfig.json的相当乏味:

{
  "compilerOptions": {
    "declaration": true,
    "module": "commonjs",
    "moduleResolution": "node",
    "target": "es2017",
    "noImplicitAny": true,
    "outDir": "./lib",
    "preserveConstEnums": true,
    "removeComments": true,
    "typeRoots": ["./node_modules/@types"]
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "**/*-spec.ts"]
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我理解这一点吗?显然test是字符串的属性!

typescript

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