你可以在这个小提琴中看到问题.
我有一个绝对定位的元素,其z-index为2,相对定位的元素的z-index为1.相对定位的元素包含绝对定位的元素.我认为z-index:2元素会显示在z-index上面:1个项目,但事实并非如此.有没有办法解决这个问题,以便z-index:2项首先是z-index:1项?
div {
background: green;
position: relative;
width: 100%;
z-index: 1;
}
span {
top: 0;
right: 0;
z-index: 2;
position: absolute;
border: solid 1px red;
height: 70px;
background: white;
}Run Code Online (Sandbox Code Playgroud)
<div>
Row 1
<span>I thought this would show above 'Row 2'</span>
</div>
<div>
Row 2
</div>Run Code Online (Sandbox Code Playgroud)
我有这个简单的jsfiddle,它演示了我认为是一个动态服务值,可以被注入它的任何控制器监视.这是角度代码:
var app = angular.module("application", []);
app.service("valueSetter", function(){
that = this;
this.serviceValue = {count: 1};
this.updatevalue = function(){
that.serviceValue.count = that.serviceValue.count + 1;
console.log(that.serviceValue);
};
});
app.controller("appcontroller", function($scope, valueSetter){
$scope.scopeValue = valueSetter.serviceValue.count;
$scope.update = function(){
valueSetter.updatevalue();
};
});
Run Code Online (Sandbox Code Playgroud)
而且HTML很简单:
<div ng-app="application" ng-controller="appcontroller">
Scope value is: {{scopeValue}}<br /><br />
<input type="button" value="update" ng-click="update()" />
</div>
Run Code Online (Sandbox Code Playgroud)
如果您观察控制台,则可以看到服务值增量,但增量值不会反映在控制器范围中.我误解了这应该如何运作?
我已经在现有代码库中绊倒了这个类:
[Serializable]
public class PillowFight
{
public PillowFight(object providedObject);
public object providedObject { get; }
public Dictionary<string, PillowData> Properties { get; }
public PillowData GetPillowByName(string pillowName);
public void SetPillowValue(string pillowName, object value);
}
Run Code Online (Sandbox Code Playgroud)
我不希望这个编译因为构造函数,GetPillowByName和SetPillowValue上缺少实现,因为它不是抽象或接口.这有效吗?为什么要这样做,有什么好处?
我正在编写一个指令,试图将附加到页面正文的元素放置在使用该指令的元素下方。我的研究表明,获取我想要显示的元素的实际顶部和左侧,我可以使用el[0].getBoundingClientRect(),但是,当我在指令中使用它时,我得到一个“空白”矩形引用(所有属性设置为 0) 。只是为了确保,我console.log(el[0])在指令中执行了操作,然后在控制台窗口中手动选择相同的元素来比较它们,看看是否可以在控制台窗口中获取边界矩形,我可以。以下是相关的控制台行:
来自指令:
\n\nconsole.log(el[0]);\n-> <div tabindex=\xe2\x80\x8b"1" class=\xe2\x80\x8b"form-control border-radius ng-binding ng-isolate-scope" time-for=\xe2\x80\x8b"schedule.monday.startTime" id="div">\xe2\x80\x8b1:29 PM\xe2\x80\x8b</div>\xe2\x80\x8b\nconsole.log(el[0].getBoundingClientRect());\n-> ClientRect {height: 0, width: 0, left: 0, bottom: 0, right: 0\xe2\x80\xa6}\nRun Code Online (Sandbox Code Playgroud)\n\n从控制台:
\n\ndocument.getElementById("div");\n-> <div tabindex=\xe2\x80\x8b"1" class=\xe2\x80\x8b"form-control border-radius ng-binding ng-isolate-scope" time-for=\xe2\x80\x8b"schedule.monday.startTime" id=\xe2\x80\x8b"div">\xe2\x80\x8b1:29 PM\xe2\x80\x8b</div>\xe2\x80\x8b\ndocument.getElementById("div").getBoundingClientRect();\n-> ClientRect {height: 34, width: 90, left: 618, bottom: 347, right: 708\xe2\x80\xa6}\nRun Code Online (Sandbox Code Playgroud)\n\n是否有明显的原因导致我无法在指令中获得有效的矩形引用?
\n我正在服务架构中写一个可靠的演员,他的工作是听取Firebase数据库中的更改并根据这些更改运行逻辑.我有它的功能,但不正确.什么我迄今所做的是写一个方法叫做MonitorRules(),这是什么监听使用一个被称为C#火力地堡客户包装,以火力演员代码FireSharp.MonitorRules()看起来像这样:
public async Task MonitorRules()
{
FireSharp.FirebaseClient client = new FireSharp.FirebaseClient(new FireSharp.Config.FirebaseConfig
{
AuthSecret = "My5up3rS3cr3tAu7h53cr37",
BasePath = "https://myapp.firebaseio.com/"
});
await client.OnAsync("businessRules",
added: (sender, args) =>
{
ActorEventSource.Current.ActorMessage(this, $"{args.Data} added at {args.Path}");
},
changed: (sender, args) =>
{
ActorEventSource.Current.ActorMessage(this, $"{args.OldData} changed to {args.Data} at {args.Path}");
}
);
}
Run Code Online (Sandbox Code Playgroud)
然后我在服务的Main()方法中注册服务之后调用MonitorRules():
fabricRuntime.RegisterActor<RuleMonitor>();
var serviceUri = new Uri("fabric:/MyApp.RuleEngine/RuleMonitorActorService");
var actorId = ActorId.NewId();
var ruleMonitor = ActorProxy.Create<IRuleMonitor>(actorId, serviceUri);
ruleMonitor.MonitorRules();
Run Code Online (Sandbox Code Playgroud)
此"有效",即服务打开与Firebase的连接并响应数据更改.问题是,由于服务在五个节点集群的三个节点上运行,因此它实际上是在监听三次并处理每个消息三次.此外,如果暂时没有活动,则会停用该服务,并且不再响应Firebase中的更改.总而言之,不是正确设置这样的东西的方式我确定,但我找不到任何关于如何在服务结构中设置这样的轮询客户端的文档.有没有办法设置这将坚持天蓝色服务面料的精神?
我正在创建一个方法,它将使用CastleWindsor来尝试解析一个类型,但如果没有配置组件,则使用默认类型(因此我不需要配置所有内容,直到我真的想要更改实现).这是我的方法......
public static T ResolveOrUse<T, U>() where U : T
{
try
{
return container.Resolve<T>();
}
catch (ComponentNotFoundException)
{
try
{
U instance = (U)Activator.CreateInstance(typeof(U).GetType());
return (T)instance;
}
catch(Exception ex)
{
throw new InvalidOperationException("IOC Couldn't instantiate a '" + typeof(U) + "' because: " + ex.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当WebConfigReader作为要使用的默认类型传入时,我收到错误"没有为此对象定义无参数构造函数".这是我的WebConfigReader类......
public class WebConfigReader : IConfigReader
{
public string TfsUri
{
get { return ReadValue<string>("TfsUri"); }
}
private T ReadValue<T>(string configKey)
{
Type type = typeof(T).GetType();
return (T)Convert.ChangeType(ConfigurationManager.AppSettings[configKey], type);
}
} …Run Code Online (Sandbox Code Playgroud) 我正在使用 vuetify 和 v-btn-toggle。我想让按钮扩展到它们所在容器的 100%。我认为有一种方法可以使用 vuetify 的各个方面而不是自定义 css 来实现此目的,但我不知道是否可以。有没有一种 vuetify 方法可以做到这一点?
<v-btn-toggle v-model="type" mandatory tile color="primary">
<v-btn value="text">Note</v-btn>
<v-btn value="list">List</v-btn>
<v-btn value="upload">Upload</v-btn>
</v-btn-toggle>
Run Code Online (Sandbox Code Playgroud) 我已经创建了一个简单的小指令(绝不是完整的),以最简单的方式呈现日期选择器.绑定到范围属性时,可以通过单击某一天来更新该属性.到现在为止还挺好.当然,您需要能够查看其他月份.这是事情变得棘手的地方.当有人点击顶部日期旁边的"<"或">"时,我正在重新生成与模板绑定的HTML:属性.当我这样做时,我正在尝试$ compile,以便所有角度连接仍然按预期运行,但我遗漏了一些关于我的$ compile操作如何更改元素的内容.我用它来编译新的HTML:
element.replaceWith($compile(getCalHMTL(month, year))(scope));
Run Code Online (Sandbox Code Playgroud)
这是有效的,一切都连接到第二次调用,但是当第二次调用(通过第二次点击'>'或'<')时,我收到以下错误消息:
Cannot read property 'replaceChild' of null
Run Code Online (Sandbox Code Playgroud)
好像元素在link:property中为null.在这个例子中,我应该如何使用$ compile来完成这项工作?