小编Яро*_*лин的帖子

如何避免在React中额外包装<div>?

今天我开始学习ReactJS,一小时后面临问题..我想插入一个在页面上div内有两行的组件.这是我在下面做的简单例子.

我有一个HTML:

<html>
..
  <div id="component-placeholder"></div>
..
</html>
Run Code Online (Sandbox Code Playgroud)

渲染函数如下:

...
render: function() {

    return(
        <div className="DeadSimpleComponent">
            <div className="DeadSimpleComponent__time">10:23:12</div >
            <div className="DeadSimpleComponent__date">MONDAY, 2 MARCH 2015</div>
        </div>
    )
}
....
Run Code Online (Sandbox Code Playgroud)

在下面我调用渲染:

ReactDOM.render(<DeadSimpleComponent/>, document.getElementById('component-placeholder'));
Run Code Online (Sandbox Code Playgroud)

生成的HTML如下所示:

<html>
..
  <div id="component-placeholder">
    <div class="DeadSimpleComponent">
            <div class="DeadSimpleComponent__time">10:23:12</div>
            <div class="DeadSimpleComponent__date">MONDAY, 2 MARCH 2015</div>
    </div>
</div>
..
</html>
Run Code Online (Sandbox Code Playgroud)

我不是很高兴React强迫我将所有内容包装在div"DeadSimpleComponent"中的问题.没有明确的DOM操作,它的最佳和简单的解决方法是什么?

更新7/28/2017:React的维护者在React 16 Beta 1中添加了这种可能性

React 16.2开始,你可以这样做:

render() {
  return (
    <>
      <ChildA />
      <ChildB />
      <ChildC />
    </>
  );
}
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

84
推荐指数
4
解决办法
4万
查看次数

使用$ httpBackend对AngularJS控制器进行单元测试

对于我的生活,我无法获得$ httpBackend来处理执行$ http get请求的控制器.我已经试了几个小时了=)

我把它减少到了下面最简单的形式.如果我,测试通过

  • 注释掉控制器中的$ http.get()请求
  • 在测试中注释掉"httpMock.flush()"
  • 并改变"猪"和"狗"匹配

也就是说,它是一个有效的,有效的测试和应用程序.

如果我把它重新插入,我会在底部显示错误.


应用程序/ JS/app.js

// Declare a module which depends on filters and services.
var myApp = angular
  .module('myApp', ['ngRoute', 'myApp.filters', 'myApp.services',
                              'myApp.directives'])
  .config(['$routeProvider' , function($routeProvider) {

    $routeProvider
      .when("/dashboard", {
        templateUrl: "partials/dashboard.html",
        controller: cDashboard
      })

      .otherwise({redirectTo: "/dashboard"});
  }]);

// Pre-define our main namespace modules.
angular.module('myApp.directives' , []);
angular.module('myApp.filters'    , []);
angular.module('myApp.services'   , []);
angular.module('myApp.controllers', []);
Run Code Online (Sandbox Code Playgroud)

应用程序/ JS/controller.js

function cDashboard ($scope, $http) {
  $scope.data = "dog";

  // Fetch the actual data.
  $http.get("/data") …
Run Code Online (Sandbox Code Playgroud)

unit-testing controller angularjs

16
推荐指数
1
解决办法
2万
查看次数

多少javascript太多了

我最近一直在与一个非常激烈的项目的人合作.使用ajax对Web服务进行所有调用,并在客户端处理数据逻辑.服务器端代码仅用作数据访问层,并且几乎不起作用.多少javascript太多了?

javascript ajax

14
推荐指数
3
解决办法
3255
查看次数

如何在Doctrine 2.0中编写UNION

如何在Doctrine 2.0中编写这个SQL查询(并获取结果)?

(SELECT 'group' AS type, 
    CONCAT(u.firstname, " ", u.surname) as fullname, 
    g.name AS subject,
    user_id, 
    who_id, 
    group_id AS subject_id,
    created 
  FROM group_notification 
  JOIN users u ON(who_id = u.id) 
  JOIN groups g ON(group_id = g.id)
)

   UNION 

(SELECT 'event' AS type, 
    CONCAT(u.firstname, " ", u.surname) as fullname, 
    e.name AS subject, 
    user_id, 
    who_id, 
    event_id AS subject_id, 
    created 
  FROM event_notification 
  JOIN users u ON(who_id = u.id) 
  JOIN events e ON(event_id = e.id)
)
   ORDER BY created
Run Code Online (Sandbox Code Playgroud)

sql union doctrine-orm

14
推荐指数
2
解决办法
3万
查看次数

Doctrine不会让我选择特定的字段

symfony框架具有app/console文件,可以通过php执行以执行一些维护任务.它还允许用户运行DQL查询:

# php app/console doctrine:query:dql --hydrate=array \
    'SELECT u.id, u.nameFirst, u.nameLast  FROM DatabaseBundle:User u'  
array
  0 => 
    array
      'id' => string '1' (length=1)
      'nameFirst' => string 'jaroslav' (length=8)
      'nameLast' => string 'rakhmatoullin' (length=13)
  1 => 
    array
      'id' => string '2' (length=1)
      'nameFirst' => string 'Båb Kåre' (length=10)
      'nameLast' => string 'Ytrefoss' (length=8)
Run Code Online (Sandbox Code Playgroud)

观察我选择了三个特定的列.我遇到的问题是,当两个表连接时,类似的查询会给我一个错误.

# php app/console doctrine:query:dql  --hydrate=array \
    'SELECT u.id , r FROM DatabaseBundle:User u JOIN u.roles r'

  [Doctrine\ORM\Query\QueryException]                   
  [Semantical Error] line 0, col -1 near 'SELECT u.id ,': …
Run Code Online (Sandbox Code Playgroud)

dql symfony doctrine-orm

10
推荐指数
1
解决办法
1万
查看次数

映射Laravel的现有数据库表

我正在寻找一种方法来使用Eloquent ORM映射项目中的现有表,并在代码中使用它们.我使用MySQL数据库并计划迁移到MSSQL.任何方式点赞赏.

database migration database-migration database-management laravel

10
推荐指数
2
解决办法
2万
查看次数

为什么我的jQuery日期选择器UI插件不会在年份字段中显示向上/向下箭头

根据这个有问题的例子,我似乎无法使用向上和向下箭头来选择早于2001年或晚于2021年的日期.

Education Record
    did you complete high school? * --> Yes
    clicking Graduation Date *  
        clicking 2013 down arrow
Run Code Online (Sandbox Code Playgroud)

例

是什么原因引起了这个?在Windows 7和Firefox中的IE10中根本没有显示滚动箭头,滚动箭头显示但是在2001年之前或2021之后无法滚动.解决方法是选择最小或最大日期并再次单击箭头在年之前或之后展示.

css jquery jquery-ui jquery-plugins

7
推荐指数
2
解决办法
1293
查看次数

发送旧日志的monolog

我有网络应用程序,用symfony-flex构建,用于部署我使用capistrano.为了记录关键日志,我已经以这种方式配置了monolog:

monolog:
    handlers:
        main:
            type: fingers_crossed
            action_level: error
            channels: ['!translation']
            excluded_http_codes: [{ 404: ['^/security/login'] }]
            handler: grouped
        grouped:
            type: group
            members: [deduplicated]
        deduplicated:
            type:    deduplication
            handler: swift
        swift:
            type:       swift_mailer
            from_email: '%mailer_user%'
            to_email:   ['email1@gmail.com', 'email2@gmail.com']
            subject:    " %%level_name%% %%level%%"
            level:      info
            formatter:  monolog.formatter.html
            content_type: text/html
Run Code Online (Sandbox Code Playgroud)

SwiftMailer配置:

swiftmailer:
    url: '%env(MAILER_URL)%'
    spool: { type: 'memory' }
Run Code Online (Sandbox Code Playgroud)

除了每次发布后的日志,一切正常.我收到之前发送过的旧日志.例:

截图

也许我错过了配置中的一些东西?

capistrano symfony monolog symfony-flex

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

bash 中变量名前什么时候可以选择使用“$”字符?

有人可以解释为什么这是有效的,特别是我没有在 if 语句内的变量名称之前使用 \xe2\x80\x98$\xe2\x80\x99 字符这一事实?我搜索了Bash 参考手册,但找不到解释。

\n
#!/usr/bin/env bash\n\none="$1"\ntwo="$2"\nthree="$3"\nfour="$4"\n\nif [[ one -le two ]] && [[ three -ge four ]]; then\n        echo "TRUE:  $one <= $two && $three >= $four"\nelse\n        echo "FALSE: $one <= $two && $three >= $four"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n

我也用这样的循环对其进行了测试,效果非常好

\n
for x1 in {1..3}; do\nfor x2 in {1..3}; do\nfor x3 in {1..3}; do\nfor x4 in {1..3}; do ./test $x1 $x2 $x3 $x4;\ndone; done; done; done | sort\n
Run Code Online (Sandbox Code Playgroud)\n

bash

7
推荐指数
2
解决办法
114
查看次数

Docker 中的 NFS:exportfs:&lt;path&gt; 不支持 NFS 导出

我正在使用 docker NFS 容器,但在安装导出的目录(甚至在本地主机上)时遇到问题。

问题

exportfs: <path> does not support NFS export
Run Code Online (Sandbox Code Playgroud)

设置

我的容器使用入口点脚本来

  • 将目录(通过命令行参数提供)写入/etc/exports
  • 调用rpcbindand service nfs-kernel-server start, and
  • 推迟inotifywait继续运行。

Dockerfile 没什么特别的。我安装inotify-toolsnfs-kernel-server公开端口 2049,并复制入口点脚本。

docker-machine我正在El Capitan Macbook 上使用。

我将卷从主机映射到容器中,以使 nfs 服务器能够访问我想要导出的目录。

入口点脚本

modprobe nfs
modprobe nfsd

for x in ${@}; do
   echo -e "$x\t*(rw,sync,no_subtree_check,crossmnt,fsid=root,no_root_squash)" >> /etc/exports
done

source /etc/default/nfs-kernel-server
source /etc/default/nfs-common

rpcbind
service nfs-kernel-server start

exec inotifywait --monitor /exports
Run Code Online (Sandbox Code Playgroud)

调试

这是我尝试导出的设置。

%> ls $HOME/mounts
a
%> ls $HOME/mounts/a …
Run Code Online (Sandbox Code Playgroud)

macos nfs docker docker-machine

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