小编Mat*_*can的帖子

React.js - 如何将属性对象传递给子组件?

我有一个名为的组件tileGroup,其属性是其他属性的集合(数组).

父组件(tileGroup)通过使用集合中的每组属性来创建子组件列表以创建新组件.

现在我将每个属性从集合映射到子组件,但如果组件的属性数量增加,这将变得很麻烦,我确信有更简洁的方法来做...

如何在不重新映射每个属性的情况下将完整的属性集传递给子组件?

示例代码:

tileGroupData = {someProperty: 'something', someOtherProperty:'something', 
                tiles: [{vsize:1, hsize:2, etc...}, {vsize:2,hsize:3,title:'whatever'}]};
Run Code Online (Sandbox Code Playgroud)

然后组件创建..

var tileGroup = React.createClass({
    render: function() {
       var thechildren = this.props.tiles.map(function(tile)
       {
           //this is what I DON'T want to be doing. 
           return <tileSimple vsize = {tile.vsize} hsize = {tile.hsize} content = {tile.content}/>;

           //what I DO want to be doing
           return <tileSimple allTheProps = {tile}/>; 
       });
Run Code Online (Sandbox Code Playgroud)

javascript properties parent-child reactjs

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

强制特定页面使用带有angularjs的HTTPS

在我们的应用程序中,我们有一个支付页面,我们要使用SSL,因为我们正在处理信用卡信息.我们已经为apache实施了重写规则,将请求重定向到特定页面到HTTPS - 这会处理对付款页面的任何直接请求(http://oursite.com/pay).

然而,我们站点中的大多数导航都是通过相对URL并在angularjs中states使用ui-router,我们发现apache不会捕获这些请求,因此在没有SSL的情况下提供页面.

EX如果用户单击链接并ui-sref='pay' ui-router加载模板并刷新状态 - 在任何时候都没有向服务器请求新的uri,因此apache无法重定向到https

有没有办法强制ui-router(或一般角度)强制状态使用HTTPS而不必更改所有链接以重新加载整个站点?

当然,这也可能是我们重写规则的一个缺点......这就是我们到目前为止所拥有的

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} /pay
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.html [L]
Run Code Online (Sandbox Code Playgroud)

第二组规则是为我们的应用程序强制执行html5mode.

RewriteCond %{REQUEST_FILENAME} !-f就位,以便angular可以获取状态的支付模板,而无需SSL.这个可以吗?

javascript .htaccess mod-rewrite ssl angularjs

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

当使用带有express的http-proxy和body-parser时,节点在POST请求时挂起

我也把这个发布到了相关的问题上http-proxy.

我正在使用http-proxy,express所以我可以拦截我的客户端和api之间的请求,以便添加一些cookie进行身份验证.

为了进行身份验证,客户端必须发送一个POST请求x-www-form-urlencoded作为content-type.所以我使用body-parser中间件来解析请求体,以便我可以在请求中插入数据.

http-proxy与使用问题,body-parser恐怕是因为它分析的身体流,永远不会关闭它,因此代理从来就不曾完成请求.

http-proxy示例有一个解决方案,在解析了我尝试使用的请求之后"重新流式传输".我也尝试connect-restreamer在同一个问题上使用该解决方案,但没有运气.

我的代码看起来像这样

var express = require('express'),
    bodyParser = require('body-parser'),
    httpProxy = require('http-proxy');

var proxy = httpProxy.createProxyServer({changeOrigin: true});
var restreamer = function (){
  return function (req, res, next) { //restreame
    req.removeAllListeners('data')
    req.removeAllListeners('end')
    next()
    process.nextTick(function () {
      if(req.body) {
        req.emit('data', req.body) //error gets thrown here
      }
      req.emit('end')
    })
  }
}

var app = express();

app.use(bodyParser.urlencoded({extended: false, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express node-http-proxy body-parser

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

使用ajax将javascript数组发送到后面的代码(c#)

我对C#和javascript有点新意,所以虽然我的问题是具体的,但我对任何替代方案持开放态度.

我有一个值数组(我在javascript函数中创建),我想发送到我的代码隐藏文件,以便在方法中使用.从我使用ajax研究并使用JSON对数组进行字符串化似乎是最好的方法.

我的问题是

  1. 我可以使用这种方法传递数组吗?

  2. 如何捕获服务器端的信息(在我的代码隐藏中?)

Javascript传递值

var jsonvalues = JSON.stringify(values);
var callback = window.location.href
$.ajax({
  url: callback
  type: "POST",
  contentType: 'application/json',
  data: jsonvalues
});
Run Code Online (Sandbox Code Playgroud)

我已经看到很多使用[WebMethod]或某种WebService来捕获数据的解决方案,我可以使用它在我的代码隐藏文件中工作而不必返回数据吗?

这是我在代码隐藏文件中使用的内容

[WebMethod]
public static void done(string[] ids)
{
String[] a = ids;
}
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net jquery webforms

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

重构具有可变性和循环依赖性的域模型,以便为Scala提供良好的FP实践?

我来自OO背景(C#,javascript),而Scala是我第一次涉足FP.

由于我的背景,我无法很好地实现适合我的域问题的域模型,并且还符合FP的良好实践,例如代码中的最小可变性.

首先,简要描述我现在的域名问题.

  • 主域对象是: Event, Tournament, User, and Team
  • Teams 由...组成 Users
  • 双方TeamsUsers可以参加Tournaments这发生在一个Event
  • EventsUsers和组成Tournaments
  • 结果,统计数据,以及排名TeamsUsers谁竞争,跨越TournamentsEvents将是一大特色.

鉴于问题的这种描述,我对域的最初想法是创建对象,其中双向循环关系是常态 - 类似于图形.我的想法是,能够访问任何给定对象的所有关联对象将为我提供最简单的路径,为我的数据编程视图,并操纵它.

case class User(
           email: String,
           teams: List[TeamUser],
           events: List[EventUser],
           tournaments: List[TournamentUser]) {
}
case class TournamentUser(
                     tournament: Tournament, 
                     user: User, 
                     isPresent: Boolean){
}
case class Tournament(
                 game: Game,
                 event: Event, 
                 users: List[TournamentUser], 
                 teams: List[TournamentTeam]) {
}
Run Code Online (Sandbox Code Playgroud)

然而,随着我进一步深入FP最佳实践,我发现我的思维过程与FP原则不相容.循环引用是不受欢迎的,似乎几乎不可能与不可变对象.

鉴于此,我现在正在努力解决如何重构我的域以满足良好FP的要求,同时仍然保持域中"真实世界对象"的常识组织.

我考虑过的一些选择

functional-programming scala immutability domain-model cyclic-reference

8
推荐指数
1
解决办法
539
查看次数

Mongoose query.populate 只返回 objectId

当尝试填充一个字段时,返回的所有内容都是最初为该字段保存的 objectid

models/gifts.js

var GiftSchema = new Schema({
        name: String,
        owner: {
            user: {
                type: Schema.Types.ObjectId,
                ref: 'User',
                required: false
            },
            nonRegisteredEmail: {
                type: String,
                required: false
            },
            nonRegisteredName: {
                type: String,
                required: false
            }
        },
        description: String,
        url: String
    }
});
module.exports = mongoose.model('Gift', GiftSchema);
Run Code Online (Sandbox Code Playgroud)

models/user.js

var UserSchema = new Schema({
  name: String,
  email: { type: String, lowercase: true },
  role: {
    type: String,
    default: 'user'
  },
  hashedPassword: String,
  provider: String,
  salt: String
});
module.exports = mongoose.model('User', …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

3
推荐指数
1
解决办法
3064
查看次数

具有正则表达式的Ui-router路由参数

我觉得这很简单,但我不能让它工作......

我正在使用Ui-Router 2.11,它包含带有正则表达式的可选参数 .

我有这个网址,其工作原理

'/event/{eventId:[0-9]}'

它过滤掉所有非数字的东西,但它只适用于1个字符的输入(所以只有0到9).

我想用一个表达式替换它,检查以确保输入中的所有字符都是数字的,所以只要它是所有数字我就可以有任何输入.

我尝试使用此线程中的表达式

'/event/{eventId:^[0-9]+$}'

但它不起作用.其他示例包括我不能使用的正斜杠(通过ui-router文档中的警告).这感觉应该非常简单,我做错了什么?

javascript regex angularjs angular-ui-router

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

使用Doctrine querybuilder过滤关联ID

我正在使用QueryBuilder在存储库中编写方法。我想where针对实体所拥有的关联进行声明,而无需加入实体

通常,如果我使用常规sql,我会做类似

select * from entity where entity.assocId=5
Run Code Online (Sandbox Code Playgroud)

但是对于学说,我没有关联ID的字段,因为它被映射为该列上的实际实体。

所以我认为我需要这样做以实现相同的目的:

$qb->innerJoin(‘e.associatedEntity', ‘ae', Query\Expr\Join::ON);
$qb->andWhere($qb->expr()->eq(‘ae.id’, $id));
Run Code Online (Sandbox Code Playgroud)

这意味着我需要对join要过滤的每个实体执行“ a ”操作,即使只是ID看起来比操作要昂贵得多。

因此,有没有一种方法可以根据关联列中的值进行过滤而无需加入实体?

doctrine associations query-builder doctrine-orm

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