请考虑以下代码:
HTML:
<div>
<label for='name'>Name:</label>
<input type='text' id='name' />
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
div {
height: 50px;
border: 1px solid blue;
}
Run Code Online (Sandbox Code Playgroud)
什么是把最简单的方法label和input在的中间div(垂直)?
我想让下面的代码编译。通过阅读类型参数提案(Go Generics),我的理解是这应该可行,但我一定错过了一些东西。
package main
import "fmt"
func main() {
s := Struct{A: "Hello World!"}
PrintA(s)
}
func PrintA[T Type](v T) {
fmt.Printf("%s\n", v.A)
}
type Type interface {
struct{ A string }
}
type Struct struct {
A string
}
func (s Struct) String() string {
return s.A
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
./prog.go:7:8:Struct 未实现 Type(约束 Type 中的 struct{A string} 可能缺少 ~)
./prog.go:11:23:vA 未定义(类型 T 没有字段或方法 A )
我想T用特定类型的特定字段来表示所有结构。添加~没有帮助。
以下是已实施的提案中的一个示例,它是最新 Go beta 版本的一部分。
type structField interface {
struct { …Run Code Online (Sandbox Code Playgroud) 注意:现在我知道问题的来源,我修改了问题.它现在只包含所需的信息.
我是Laravel PHP框架的新手.
我的计算机上有一个非常小的应用程序.它连接到MySQL数据库并具有用户模型.我使用Auth类登录和注销.
一切正常,但是当我登录时,加载页面大约需要一秒钟,这非常慢.当我没有登录时,这只是几毫秒.
通过使用内置的分析器,我意识到了两个问题.首先,就像我说的,加载页面需要超过1000毫秒.其次,每次我登录时,框架都会生成一个SQL.查询会搜索具有特定ID(我的id)的用户.我想这是获取有关登录用户的信息.但是不应该有某种缓存.如果我的网站每秒必须管理很多请求,这会成为一个问题.
我意识到Auth::check()在视图中使用是导致问题的原因.我有4个左右Auth::check()是我的Blade视图.当我没有时,它会很快.如果我有一个,它很慢.然后,无论我有多少,它都不会慢得多.这就像Auth类的初始化需要花费太多时间或类似的东西.我想它解释了为什么它只在我登录时发生.
我深入研究了Laravel的代码,我发现当Auth::check()第一次调用时,Auth类需要通过从数据库中检索用户的信息来"激活"我的Session.这解释了每个页面请求正在执行的查询.但是,由于分析器说查询甚至不需要一毫秒来执行,我仍然不知道为什么它会减慢应用程序的速度.
新信息:即使我没有向数据库发送查询,连接到它的简单操作也需要几秒钟.这就是它变慢的原因.我想我已经非常接近解决问题了.
任何想法到目前为止?
提前致谢.
Auth::check()视图中的事实不会改变任何东西.Auth::guest()并不能解决问题.我今天尝试了Symfony 2,并尝试使用Doctrine.
但是当我php app/console doctrine:schema:create在命令行中使用该命令时,它会返回以下错误:
[PDOException]
could not find driver
doctrine:schema:create [--dump-sql] [--em[="..."]]
Run Code Online (Sandbox Code Playgroud)
我的php.ini文件和phpinfo()清晰显示PDO驱动程序已加载.我还在纯PHP中创建了一个小脚本,使用PDO连接到我的数据库,它工作正常.没有错误,所以PDO安装良好并且正常工作.
PHP和MySQL使用最新版本的EasyPHP在我的计算机上运行.
Doctrine可能出了什么问题?我现在应该在哪里看?
在我的应用程序中,用户可以创建消息并发送它.当用户发送消息时,将创建消息,createRecord如果成功,服务器将回复201 Created.
此外,用户可以通过websocket从其他用户获取消息.当它收到一条消息时,我将它推入商店pushPayload.
var parsedData = JSON.parse(data);
this.store.pushPayload('message', parsedData);
Run Code Online (Sandbox Code Playgroud)
问题是,当用户发送消息并保存消息时,他们也会从websocket中获取消息,即使两个对象具有相同的ID,商店也会收到重复的消息.
我怎么能告诉商店,而不是当我推送或保存具有相同ID的现有元素的东西时,它应该覆盖它?
当我使用Play 1.2时,我能够使用@Before或@After(和其他...)在任何控制器内部注释一些方法,以便在此控制器内的每个请求之前或之后执行一个方法.
我怎么能在Play 2.0中这样做?
我读了一下Global对象,但它似乎并不是我想要的.此外,动作构图似乎对我想做的事情太复杂了.我希望看到更简单的东西.
有任何想法吗?
在我的Ember应用程序中,我收到来自websocket的通知.当websocket收到一条消息(编码为JSON)时,我想将它推入商店.
到目前为止,这是我的代码:
console.log('About to normalize', data);
var normalizedData = this.store.normalize('message', data);
console.log('About to push', normalizedData);
this.store.push('message', normalizedData);
Run Code Online (Sandbox Code Playgroud)
data和normalizedData最终是完全相同的值,如下所示:
{"message":{"id":1,"chatroom":1,"player":1,"content":"A message"}}
Run Code Online (Sandbox Code Playgroud)
并调用push方法会引发此错误:
Error: Assertion Failed: Expected an object as `data` in a call to `push`/`update` for message ,
but was {"message":{"id":1,"chatroom":1,"player":1,"content":"31232132113"}}
Run Code Online (Sandbox Code Playgroud)
我不知道出了什么问题.当Ember从服务器获取特定消息时,它会收到相同类型的JSON,而Ember Data会很好地处理它.当它来自websocket并且需要被推动时,它会崩溃.
更新
我尝试使用pushPayload,就像在评论中提出的那样.它仍然无法正常工作.我收到这些消息:
"警告:在有效负载中遇到"0",但未找到型号名称为"0"的模型(使用arkipel @ serializer解析的型号名称:-rest:.typeForRoot("0"))"
"警告:在有效负载中遇到"0",但未找到型号名称为"1"的模型(使用arkipel @ serializer解析的型号名称:-rest:.typeForRoot("1"))"
"警告:在有效负载中遇到"0",但未找到型号名称为"2"的模型(使用arkipel @ serializer解析的型号名称:-rest:.typeForRoot("2"))"
它上升到67,然后继续使用像fmt,camelize,htmlSafe这样的词......我只是数据只是一个表示JSON的字符串.
我正在使用Play!框架和我有一个模型(一个实体),它有一个类型为Map的变量.
为了进行一些测试,我每次启动应用程序时都会加载一个YAML文件,但我不知道定义Map的语法.
假设我有这门课
public class aClass {
public int arg1;
public String arg2;
public Map<String, Integer> arg3;
}
Run Code Online (Sandbox Code Playgroud)
我的YAML文件会是什么样子?我试过这个:
aClass(object1)
arg1: 34
arg2: aString
arg3: [key1: value1, key2: value2] <- What do I do here?
Run Code Online (Sandbox Code Playgroud)
这是我多次尝试之一.我不知道语法,我无法在互联网上找到它.我觉得玩!使用SnakeYAML作为YAML解析器.
在文档中我找到了一些例子,但没有一个能够奏效.
在我的应用程序中,除了Map变量(示例中的arg3)的大小为0元素外,一切正常.
谢谢.
首先,我制作了一个没有Ember CLI的小型Ember应用程序.
我有这段代码.
window.MyApp = Ember.Application.create({
ready: function() {
this.register('session:current', MyApp.SessionController, { singleton: true });
this.inject('controller', 'session', 'session:current');
}
});
Run Code Online (Sandbox Code Playgroud)
这很有效.
然后我决定用Ember CLI从头开始重写所有内容.
我编辑了文件app/app.js并添加了ready钩子,就像我以前的版本一样.
var App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver: Resolver,
ready: function() {
this.register('session:current', App.SessionController, { singleton: true });
this.inject('controller', 'session', 'session:current');
}
});
Run Code Online (Sandbox Code Playgroud)
这不起作用.
会话控制器确实存在.那是文件的内容app/controllers/session.js
export default Ember.Controller.extend({
isLoggedIn: false,
});
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是
TypeError: Attempting to register an unknown factory: `session:current`
Run Code Online (Sandbox Code Playgroud)
它出现在浏览器中.
我用google搜索了这条消息,但我在Ember CLI中找不到依赖注入.
任何的想法?
我想进行提交并将其复制到我的存储库中的其他位置.
现在的情况:
A--B--C--D (branch1)
\
E--F (branch2)
Run Code Online (Sandbox Code Playgroud)
期望的情况:
A--B--C--D--F'(branch1)
\
E--F (branch2)
Run Code Online (Sandbox Code Playgroud)
F保留在存储库中非常重要.我不想重写历史,因为F可能是公开的.
表示F和F'的存储库(源代码)的状态应该完全相同.是的,引入的C和D可能会丢失.
我不希望重播E和F在D的顶部我已经调查cherry-pick和rebase,但似乎他们删除原提交或干脆重播目标的顶部的变化.