限制绝对定位元素位置的最佳方法是什么,理想情况是在纯CSS中?
我知道以下是不可能的,但我想我正在寻找的东西会是这样的:
.stickyElement{
bottom-max:auto;
bottom-min:0px;
top-max: auto;
top-min: 100px;
}
Run Code Online (Sandbox Code Playgroud)
这将允许元素从其包含的定位元素的顶部移动到不小于100px的位置.
一个示例(以及我的初始)用例是一个菜单,它作为页面的一部分滚动但在它到达视口顶部时停止滚动.(粘性菜单?)这个例子可以在这个页面上看到:http: //spektrummedia.com/startups
我完全相信,如果不使用一些Javascript,这是不可能的,但我想我会把它放在那里.
在我们的项目中,我们有一个运行在http和https上的java Web服务.我们希望内部使用http,并使用https作为我们的Web应用程序的外部版本.
所以我们在我们的应用程序中创建了代理类,我们在web/app.config中设置了http的绑定,一切正常.
在外部应用程序中,我们需要对代码和配置进行哪些更改以支持相同服务的https?如果可能请提供代码片段来解释!
我试图了解在MVC Preview 4中使用Authorize [Authorize] Action Filter时错误处理的工作原理.
我有一个看起来像这样的动作:
[Authorize(Roles = "DOMAIN\\NOTAUTHORISED_ROLE" )]
[HandleError]
public ActionResult NeedAuthorisation()
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
当我访问网址:时http://localhost:2197/testAuthorisation/NeedAuthorisation,我的浏览器中出现了一个空白页面.在Firebug中,我可以看到已发出请求并401 - Unauthorised返回了响应状态.但我没有被重定向或返回了customError.使用我授权的角色时,一切都按预期工作.
这是使用Windows身份验证.我正在编写一些代码来尝试Forms身份验证,看看我是否遇到了同样的问题.我已<customerrors mode="On"/>在testAuthorisation文件夹和Shared文件夹中设置并创建了错误页面.
我使用Mongoose/MongoDb创建唯一索引时遇到问题,无法使其工作.在设置唯一索引时,我可以添加两个具有相同属性值的文档.
我已经尝试了我能想到的一切 - 重新启动(一切)改变语法等.
这是我用来保存实体的方法:
create : function(entity, definition, successFn, errorFn){
var model = mongoose.model(entity);
newModel = new model(definition);
newModel.save(function(error) {
if(error){
if(!errorFn){
throw error;
}
errorFn(newModel);
return;
}
successFn(newModel);
});
}...
Run Code Online (Sandbox Code Playgroud)
<<
var Something = new Schema({
objectId : ObjectId,
name : { type : String, index: { unique: true }},
url : { type : String, index: { unique: true }},
...etc
mongoose.model('Something', Something);
Run Code Online (Sandbox Code Playgroud)
[conn1] insert xxxxx.agencies 1526ms
[conn1] building new index on { name: …Run Code Online (Sandbox Code Playgroud) 我是Mocking框架的新手,并已开始使用RhinoMocks来协助我的MVC App Unit Testing.
我正在使用Scott Hanselmanns MVC Mock Helper来协助模拟 HttpContext.我成功地(经过一段时间)嘲笑了我需要的一些东西,但是当谈到HttpContext的Application属性时,它已经失败了.
在我的应用程序中,我将一个对象存储在Application中,并在Controller中检索它,如:
SomeObj foo = (SomeObj)Application["fooKey"];
Run Code Online (Sandbox Code Playgroud)
这是在我的MVC应用程序中的Application_Start上创建的.
更新后的第一个答案(为清晰起见,附加代码)目前在测试设置中我做:
HttpContextBase mockHttpBase = mocks.FakeHttpContext();
controllerToTest = new SomeController();
mocks.SetFakeControllerContext(controllerToTest);
HttpApplicationStateBase appState =
MockRepository.GenerateStub<HttpApplicationStateBase>();
Globals tmpAppGlobals =
new Globals();
mockHttpBase.Expect(ctx => ctx.Application).Return(appState);
mockHttpBase.Expect(ctx => ctx.Application[Globals.GlobalsKey]).
Return(tmpAppGlobals);
Run Code Online (Sandbox Code Playgroud)
在我的单元测试设置中,我做:
Globals tmpAppGlobals = new Globals();
controllerToTest.ControllerContext.HttpContext.
Expect(ctx => ctx.Application[Globals.GlobalsKey]).
Return(tmpAppGlobals);
Run Code Online (Sandbox Code Playgroud)
此调用为Application对象抛出NullReference异常.
我的问题有两个:
1)这是正确的方法还是我从设计/架构的角度做错了什么?
2)为什么这不起作用?!
提前致谢.
我正在尝试找出在单页面应用程序中处理权限的正确方法,该应用程序直接与几个实现HATEOAS的RESTful API对话.
举个例子:
"作为我的应用程序的用户,我可以查看,启动和暂停作业,但不能阻止它们."
基础rest API具有以下资源:
/ jobs/{id}接受GET和PUT.GET返回作业模型,PUT接受作业模型作为请求体:
{
"_links" : {
"self" : "/jobs/12345678"
}
"id" : 12345678,
"description" : "foo job",
"state" : "STOPPED"
}
Run Code Online (Sandbox Code Playgroud)
接受的工作状态可以是:休眠| 跑步| 暂停了| 停止.
要求说在UI上我必须有按钮:
开始,暂停,停止
...并且仅基于登录用户的权限进行显示.
从API的角度来看,一切都可以作为服务器上的底层逻辑,确保用户在发出请求时无法将状态更新为STOPPED状态(可能会返回401).
通知app/UI用户权限的最佳方法是什么,因此它可以隐藏用户无权操作的任何按钮?
如果API提供权限列表,可能类似于:
{
"_links" : {
"self" : "/permissions",
"jobs" : "/jobs"
}
"permissions" : {
"job" : ["UPDATE", "DELETE"],
"job-updates" : ["START", "PAUSE"]
}
}
Run Code Online (Sandbox Code Playgroud)
或者应该更改API以便权限反映在HATEOS链接中可能类似于:
{
"_links" : {
"self" : "/jobs/12345678",
"start" : "/jobs/12345678/state?to=RUNNING",
"pause" : "/jobs/12345678/state?to=PAUSED",
}
"id" : 12345678,
"description" …Run Code Online (Sandbox Code Playgroud) 从以下脚本部分获取package.json:
"scripts":{
"sass:watch": "npm run sass -- -w ./src/public/stylesheets -r --source-map true",
"livereload": "live-reload --port 9091 ./src/**/*",
"dev:watch" : "npm run sass:watch; npm run livereload"
}
Run Code Online (Sandbox Code Playgroud)
如何在不阻止对方的情况下成功运行任务sass:watch和任务?livereloaddev:watch
目前,当我运行块时.npm run dev:watch sass:watchlivereload
如果我重新排序它们,会出现同样的问题.
使用 React 时(没有 Redux)。假设我有如下所示的组件状态:
{
rows: [
{
items:[
{
value:'a',
errors: false
},
{
value:'b',
errors: false
},
{
value:'c',
errors: false
}
]
}
Run Code Online (Sandbox Code Playgroud)
还假设行和项目的长度可以是 0 > n。
更新任何项目的价值的最佳(最有效、最常见、最一致、最流行等)方式是什么,即
this.state.rows[0].item[1]
Run Code Online (Sandbox Code Playgroud)
我意识到我可以做到:
let updatedRows = this.state.rows
updatedRows[0].item[1].value = 'new value'
this.setState({
rows: updatedRows
})
Run Code Online (Sandbox Code Playgroud)
这是普遍接受的吗?替换几乎整个状态对象来更改单个值不是效率低下吗?
我想模拟HttpContext的User属性.我正在使用Scott Hanselmans MVCHelper类和RhinoMocks.
我有一个包含代码的单元测试,如下所示:
...
MockIdentity fakeId = new MockIdentity("TEST_USER", "Windows", true);
MockPrincipal fakeUser = new MockPrincipal(null, fakeId);
using (mocks.Record())
{
Expect.Call(fakeHttpContext.User).Return(fakeUser);
}
Run Code Online (Sandbox Code Playgroud)
...
我的MockIdentity和MockPrincipal类分别是符合IIdentity和IPrincipal的模拟.
运行报告的单元测试时出错:
System.NotImplementedException:未实现方法或操作.在System.Web.HttpContextBase.get_User()
当我尝试设置User属性的期望时,就会发生这种情况.
我知道httpContextBase有一个没有实现的getter和setter,但我认为Rhino会在模拟时处理这个问题.
这是否意味着我必须从HttpContextbase派生并覆盖我的mock对象的属性.这看起来很奇怪.
其他用户遇到过此问题,请在此处报告:http: //www.mail-archive.com/rhinomocks@googlegroups.com/msg00546.html
在以下地址的Mongoose文档中:http: //mongoosejs.com/docs/embedded-documents.html
有一个声明:
DocumentArrays有一个特殊的方法id,可以通过_id属性过滤嵌入的文档(每个嵌入的文档都有一个):
请考虑以下代码段:
post.comments.id(my_id).remove();
post.save(function (err) {
// embedded comment with id `my_id` removed!
});
Run Code Online (Sandbox Code Playgroud)
我查看了数据,并且嵌入式文档没有_id,因为这篇帖子似乎证实了这一点:
我的问题是:
文档是否正确?如果是这样,那么如何找出'my_id'(在示例中)首先要做'.id(my_id)'?
如果文档不正确,可以安全地将索引用作文档数组中的id,或者我应该手动生成唯一的Id(根据上述帖子).
我正在尝试使用来自gathercontent.com的API,使用节点js进行简单的(!)摘要式身份验证.
一切似乎都在工作,除了我仍然得到一个"错误的凭据"响应,看起来像这样:
{ success: false, error: 'Wrong Credentials!' }
Run Code Online (Sandbox Code Playgroud)
代码如下所示:
var https = require('https'),
qs = require('querystring');
apikey = "[my api key goes in here]",
pwd = "[my password goes in here]",
crypto = require('crypto');
module.exports.apiCall = function () {
var options = {
host:'abcdefg.gathercontent.com',
port:443,
path:'/api/0.1/get_pages_by_project/get_me',
method:'POST',
headers:{
"Accept":"application/json",
"Content-Type":"application/x-www-form-urlencoded"
}
};
var req = https.request(options, function (res) {
res.on('data', function (d) {
var creds = JSON.parse(d);
var parsedDigest = parseDigest(res.headers['www-authenticate']);
console.log(parsedDigest);
var authopts = {
host:'furthercreative.gathercontent.com',
port:443,
path:'/api/0.1/get_pages_by_project/get_me', …Run Code Online (Sandbox Code Playgroud) node.js ×4
asp.net-mvc ×3
javascript ×3
asp.net ×2
http ×2
mongodb ×2
mongoose ×2
rhino-mocks ×2
api ×1
c# ×1
css ×1
ecmascript-6 ×1
hateoas ×1
html5 ×1
httpcontext ×1
https ×1
hypermedia ×1
jquery ×1
livereload ×1
node-sass ×1
npm ×1
reactjs ×1
rest ×1
wcf ×1