小编pht*_*ier的帖子

在主容器中定位网格项的内容(子网格功能)

关于CSS网格的所有指南似乎都暗示了一种结构,其中位于网格中的元素是网格本身的子元素.

<div class="wrapper">
  <div>A</div>
  <div>B</div>
</div>
Run Code Online (Sandbox Code Playgroud)

.wrapper具有display: grid和网格属性的定义.

如果我想在网格本身上放置一个网格的"孙子"元素(而不是依赖于它的父级?),这是否有意义?

<div class="wrapper">
  <div>A</div>
  <div>
    <div>B</div>
    <div>C</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在这里,我希望能够将A,B和C各自放在他们自己的网格行上; 这甚至有意义吗?

css css3 css-grid

8
推荐指数
2
解决办法
2105
查看次数

嵌套循环中匿名闭包的可读性

我的一个朋友被所有着名的'循环'javascript问题中的匿名函数所困扰.(它被解释为死于SO,而我实际上期待有人将我的问题视为副本,这可能是公平的游戏).

问题相当于John Resig在本教程中解释的内容:

http://ejohn.org/apps/learn/#62

var count = 0; 
for ( var i = 0; i < 4; i++ ) { 
  setTimeout(function(){ 
    assert( i == count++, "Check the value of i." ); 
  }, i * 200); 
}
Run Code Online (Sandbox Code Playgroud)

他们说,对于新用户来说,它应该可以工作,但确实"我总是拥有相同的价值观",因此哭泣和牙齿咬牙切齿.

我解释了很多挥手问题和一些关于范围的问题,并指出他在SO或其他网站上提供的一些解决方案(实际上,当你知道它是如此常见的问题时,谷歌你的朋友).

当然,真正的答案是在JS中,范围处于功能级别.因此,当匿名函数运行时,'i'没有在其中任何一个的范围内定义,但它在全局范围内定义,并且它具有循环结束的值,4.

既然我们都很有可能接受过使用块级范围的语言的训练,那么它仍然是另一回事 - js-that-a-little-bit-bits-the-the-the-world ("这个"的意思,有人吗?)

让我烦恼的是,常见的答案,实际上甚至是John自己提供的答案如下:

var count = 0; 
for ( var i = 0; i < 4; i++ ) (function(i){ 
   setTimeout(function(){ 
     assert( i == count++, "Check the value of i." ); 
   }, i * 200); 
})(i);
Run Code Online (Sandbox Code Playgroud)

这显然是有效的,并证明了对语言的掌握和对嵌套括号的品味,可疑地让你看起来像一个LISP-er.

然而,我不禁想,其他的解决方案将是 …

javascript

7
推荐指数
1
解决办法
321
查看次数

jsdoc:来自其他模块的引用typedef-ed类型

假设我在js模块中有一个typedef类型

// somewhere/foo.js
/**
 * @module
 */ 
/**
 * @typedef Foo
 * @type {object}
 * property {string} bar - some property
 */
Run Code Online (Sandbox Code Playgroud)

是否可以在另一个模块中引用此类型,以便在jsdoc生成的HTML页面中,类型显示为typedef-ed模块的链接?

我试过这种变化,但似乎没有任何作用......

// somewhere_else/bar.js
/**
 * @module
 */
/**
 * @param {somewhere/foo/Foo} foo - some param
 */
export default function doStuff(foo) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

jsdoc jsdoc3

7
推荐指数
3
解决办法
5715
查看次数

你如何使用`reselect`来记忆数组?

假设我有一个具有此状态结构的redux存储:

{
  items: {
    "id1" : {
      foo: "foo1",
      bar: "bar1"
    },
    "id2": {
      foo: "foo2",
      bar: "bar2"
    } 
  }
}
Run Code Online (Sandbox Code Playgroud)

这个商店通过接收物品的全新价值而发展:

const reduceItems = function(items = {}, action) {
  if (action.type === 'RECEIVE_ITEM') {
    return {
      ...items,
      [action.payload.id]: action.payload,
    };
  }
  return items;
};
Run Code Online (Sandbox Code Playgroud)

我想显示一个Root视图,它呈现一个SubItem视图列表,它只提取状态的一部分.例如,SubItem视图只关心foos,应该得到它:

function SubItem({ id, foo }) {
  return <div key={id}>{foo}</div>
}
Run Code Online (Sandbox Code Playgroud)

因为我只关心状态的"子部分",这就是我想要传递给"哑"的Root视图:

const Root = function({ subitems }) {
  // subitems[0] => { id: 'id1', foo: "foo1" }
  // subitems[1] => { id; 'id2', foo …
Run Code Online (Sandbox Code Playgroud)

javascript redux reselect

7
推荐指数
1
解决办法
4255
查看次数

编译Automake生成的库时未定义的引用

我在使用automake的项目中遇到了一个非常奇怪的链接错误.我从手册中看起来很简单,所以我真的很想知道我做错了什么......

我的项目有三个文件夹:

  • src/common,我将一些C++文件编译成一个libube-common.a静态lib
  • src/engine,我将一些文件编译成一个libube-engine.a静态lib
  • src/client,其中......你猜对了,libue-client.a,还有一个文件ube.cpp是我的主要文件

每个库都使用Makefile.am编译,如下所示:

noinst_LIBRARIES=libube-common.a
libube_common_a_SOURCES=gettext.h lua_helper.hpp \
 silent_ostream.hpp \
 logging.hpp logging.cpp \
 logger_interface.hpp \
     ... etc ...
AM_CPPFLAGS=-DSRCDIR=\"${srcdir}\" \
 -DLUADIR=\"${luadir}\" \
 -Wall -Werror \
 -I$(srcdir)/../../include \
 $(LUA_INCLUDE) \
 $(BOOST_CPPFLAGS)
Run Code Online (Sandbox Code Playgroud)

这导致各种对象使用如下行构建:

g++ -DHAVE_CONFIG_H -I. -I../../../../../src/common -I../..  -DSRCDIR=\"../../../../../src/common\" -DLUADIR=\"\" -Wall -Werror -I../../../../../src/common/../../include -I/usr/include/lua5.1 -I/usr/include   -g -O2 -MT logging.o -MD -MP -MF .deps/logging.Tpo -c -o logging.o ../../../../../src/common/logging.cpp
Run Code Online (Sandbox Code Playgroud)

所有这些都放在图书馆中:

ar cru libube-common.a logging.o prefix_resource_resolver.o stat_file_checker.o 
ranlib libube-common.a
Run Code Online (Sandbox Code Playgroud)

所有这一切似乎都很好,我甚至可以将一些小测试程序与库相连(在同一个makefile中)

然后,在我的主程序的Makefile.am中,我要求链接本地库:

ube_LDADD=../common/libube-common.a \
      ../engine/libube-engine.a \
      libube-client.a \
          ... other libs ...
Run Code Online (Sandbox Code Playgroud)

这就是我得到这样的错误:

g++ …
Run Code Online (Sandbox Code Playgroud)

c++ automake

6
推荐指数
1
解决办法
3261
查看次数

是否可以以编程方式生成Eclipse工作区?

问候

我正在研究一种由小日食项目组成的产品.我们维护.project文件,并使用常春藤生成.classpath文件,因此每个项目的处理都很容易.

但是,更痛苦的是创建一个包含所有项目的工作空间.它很少发生(基本上每次我们分支所有代码的realease和东西).

有没有人知道以编程方式创建Eclipse 工作区的方法?可以编写ant任务的东西:

  • 在新文件夹中创建工作区
  • 自动"导入"现有项目(来自现有的svn结账)
  • 创建Linked Linked/workspace变量
  • (optionnaly,创建一个团队共享位置并将项目连接到SVN ......)

eclipse ant

6
推荐指数
1
解决办法
1303
查看次数

将javascript应用程序迁移到使用AMD的提示(例如requirejs)

我有一个javascript项目,大多数模块使用一些第三方库作为'全局'依赖项(特别是jquery和jquery插件)

我想"清理"项目(将所有库表示为requirejs依赖项.)但是在我的情况下这是一个大任务(许多文件,许多第三方库).

我怎样才能更轻松/更快地完成迁移?

  • 我可以通过将第三方库包装在只加载它们的模块中来使用amd依赖关系"伪造"(使用order!plugin?)
  • 混合加载第三方库的模块作为直接使用全局的模块和模块是否安全?
  • 如果我想自动化,是否可以使用任何工具来"解析"r​​equirejs模块,告诉我是否使用了特定的符号?

编辑:我的上一个问题的意思是"是否可以自动重写我的js文件,以便明确地导入依赖项而不是依赖于浏览器全局变量?"

javascript requirejs

6
推荐指数
1
解决办法
900
查看次数

基座:您可以使用什么数据流来呈现新初始化的空列表?

我正在尝试创建一个非常基本的基座应用程序来显示项目列表,或者如果列表为空则创建一条短信.

我以为我想要的是:

  • 一个数据模型,其中[:root:items]将是我的项目列表
  • 页面的模板函数([:root])
  • 空列表的静态模板函数
  • 包含元素的列表的动态模板函数
  • 在应用程序的开头,发送一条消息,将列表初始化为空
  • 在渲染中,回复:
    • [node-create [] :map] 通过做......什么都没有?
    • [node-create [:root] :map] 通过渲染整页的模板
    • [node-create [:root :items] :map] 通过添加空列表的模板

要清楚,我最终想要展示的是(没有元素)

<html>
 <div>My list</div>
 <p>There is nothing in the list</p>
</html>
Run Code Online (Sandbox Code Playgroud)

当列表中有东西时:

<html>
 <div>My list</div>
 <ul>
   <li>item1</li>
   <li>item2</li>
 </ul>
</html>
Run Code Online (Sandbox Code Playgroud)

我在这里走在正确的轨道上吗?

我坚持初始化数据模型是我想要的.我得到的最接近的是:

;; behavior.clj
(defn init-root-transform [old-value message]
  {})

(defn init-items-transform [old-value message]
  [])

(def example-app
  {:version 2
   ;; :transform [[:set-value [:greeting] set-value-transform]]})
   :transform [[:bootstrap [:root] init-app-transform]
               [:bootstrap-systems [:root :items] init-items-transform]
               ]})

;; start.cljs
... skipped...
    (app/begin app)
    (p/put-message …
Run Code Online (Sandbox Code Playgroud)

clojure clojurescript pedestal

6
推荐指数
1
解决办法
289
查看次数

Rust:分割字符串以获取单词及其位置

Rust 有内置函数可以围绕空格分割字符串,例如:

let mut iter = " Hello world".split_whitespace();

assert_eq!(Some("Hello"), iter.next());
assert_eq!(Some("world"), iter.next());
Run Code Online (Sandbox Code Playgroud)

但是,我想要一种将字符串拆分为单词的方法,以及它们在字符串中的相应位置。

let mut iter = ??????(" Hello world");

assert_eq!(Some((1, "Hello")), iter.next());
assert_eq!(Some((7, "world")), iter.next());
Run Code Online (Sandbox Code Playgroud)

我完全不知道从哪里开始,因为:

  • 内置的splitsplit_whitespace函数“消耗”空白,所以我不知道给定元素之前出现了多少空白。我应该从 开始split(''),并以某种方式将非空白“分组”在一起吗?

  • 有一个match_indices函数可以执行类似的操作,但它只能查找给定的字符串或字符(使用闭包)。

有内置的东西吗?或者我需要迭代迭代std::str::Chars器吗?

如果是这样,我将如何从Chars给定字符的迭代器转到表示下一个单词的字符串?有没有一种安全的方法从函数返回它?(到目前为止,编译器从未让我这样做)

rust

6
推荐指数
1
解决办法
3174
查看次数

摆脱子组件对象的"新"运算符

我一直在阅读Misko Hevery 关于依赖注入的经典 文章,基本上是"将对象图创建代码与代码逻辑分离".

主要想法似乎是"摆脱'新'运营商',将它们放入专用对象('工厂')并注入你所依赖的一切."

现在,我似乎无法理解如何使用由几个其他组件组成的对象,并且其工作是将这些组件隔离到外部世界.

跛脚的例子

一个View类,表示几个字段和一个按钮的组合.所有组件都依赖于图形ui上下文,但您希望将其隐藏在每个子组件的接口后面.

所以像(在伪代码中,语言并不重要我猜):


class CustomView() {

   public CustomView(UIContext ui) {
        this.ui = ui
   }

   public void start() {

      this.field = new Field(this.ui);
      this.button = new Button(this.ui, "ClickMe");

      this.button.addEventListener(function () {
           if (field.getText().isEmtpy()) {
              alert("Field should not be empty");
           } else {
              this.fireValueEntered(this.field.getText());
           }
      });
   }

   // The interface of this component is that callers
   // subscribe to "addValueEnteredListener"..)
   public void addValueEnteredListener(Callback ...) {
   }

   public void fireValueEnteredListener(text) {
     // Would call each …
Run Code Online (Sandbox Code Playgroud)

language-agnostic unit-testing dependency-injection

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