我有一个名为的组件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) 在我们的应用程序中,我们有一个支付页面,我们要使用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.这个可以吗?
我也把这个发布到了相关的问题上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) 我对C#和javascript有点新意,所以虽然我的问题是具体的,但我对任何替代方案持开放态度.
我有一个值数组(我在javascript函数中创建),我想发送到我的代码隐藏文件,以便在方法中使用.从我使用ajax研究并使用JSON对数组进行字符串化似乎是最好的方法.
我的问题是
我可以使用这种方法传递数组吗?
如何捕获服务器端的信息(在我的代码隐藏中?)
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) 我来自OO背景(C#,javascript),而Scala是我第一次涉足FP.
由于我的背景,我无法很好地实现适合我的域问题的域模型,并且还符合FP的良好实践,例如代码中的最小可变性.
首先,简要描述我现在的域名问题.
Event, Tournament, User, and TeamTeams 由...组成 UsersTeams并Users可以参加Tournaments这发生在一个EventEvents由Users和组成TournamentsTeams和Users谁竞争,跨越Tournaments和Events将是一大特色.鉴于问题的这种描述,我对域的最初想法是创建对象,其中双向循环关系是常态 - 类似于图形.我的想法是,能够访问任何给定对象的所有关联对象将为我提供最简单的路径,为我的数据编程视图,并操纵它.
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
当尝试填充一个字段时,返回的所有内容都是最初为该字段保存的 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) 我正在使用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看起来比操作要昂贵得多。
因此,有没有一种方法可以根据关联列中的值进行过滤而无需加入实体?
javascript ×5
angularjs ×2
.htaccess ×1
asp.net ×1
associations ×1
body-parser ×1
c# ×1
doctrine ×1
doctrine-orm ×1
domain-model ×1
express ×1
immutability ×1
jquery ×1
mod-rewrite ×1
mongodb ×1
mongoose ×1
node.js ×1
parent-child ×1
properties ×1
reactjs ×1
regex ×1
scala ×1
ssl ×1
webforms ×1