我<video>在Angular2组件中有一个HTML5 元素.我需要访问它以便在允许用户将其共享到Twitter之前检查持续时间.
有没有办法通过模型绑定或直接访问DOM,我可以在组件的支持类中获取此信息?
我尝试使用ng-model绑定它,就像在组件的模板中一样:
<video controls width="250" [(ng-model)]="videoElement">
<source [src]="video" type="video/mp4" />
</video>
Run Code Online (Sandbox Code Playgroud)
并在组件的类(TypeScript)中:
videoElement: HTMLVideoElement;
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误: EXCEPTION: No value accessor for '' in [null]
我只是通过给视频元素一个id并使用document.getElementById("videoElementId")它来访问它,但似乎必须有更好的方法.
在我正在处理的网页上,Google商家信息自动填充功能的结果显示在应有的位置以下70px,在搜索框和结果容器的开头之间留下了空隙.
间隙的高度恰好是Chrome自动填充功能的确切高度,因此我怀疑自动完成库是出于某种原因在计算位置时将该高度考虑在内,即使我已设法禁用该功能我的搜索框.
我能够通过覆盖类的top属性值.pac-container(替换1234pxAPI计算的值)来解决问题1164px,但我宁愿有办法动态地执行此操作,也可以仅基于偏移而不是硬编码那个号码.
有没有办法,使用CSS或JavaScript/jQuery,将自动填充结果容器移动一定量?
可以在Google的文档中找到自动填充框中涉及的CSS类列表.
我试图在NEST中创建一个使用Bool查询的Elasticsearch查询,但是我放在Bool方法中的所有内容似乎都被忽略了。
这是我尝试过的代码:
var query = "my query";
var fileType = "Poster";
var searchResults = _client.Search<Doc>(s =>
s.Query(q =>
q.Bool(
b => b.Must(
m => m.MatchPhrase(mp =>
mp.Query(query).Fuzziness(2))
).Must(m => m.Match(
mp => mp.Query(fileType))))
).Highlight(x =>
x.OnFields(y =>
y.OnField(f => f.File)
.PreTags("<strong>")
.PostTags("</strong>"))
).Fields("fileType", "title"));
Run Code Online (Sandbox Code Playgroud)
这是NEST从该代码生成的JSON请求。请注意,它缺少整个查询属性:
{
"highlight": {
"fields": {
"file": {
"pre_tags": [
"<strong>"
],
"post_tags": [
"</strong>"
]
}
}
},
"fields": [
"fileType",
"title"
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试去除多余的突出显示和字段选择,以防造成问题,只是离开了Query和Bool:
var searchResults = _client.Search<Doc>(s =>
s.Query(q =>
q.Bool(
b => …Run Code Online (Sandbox Code Playgroud) 我的 MVC 应用程序是在根/全局级别设置控制器的。这些没有明确的区域。我还有一个“管理”区域。以 /admin/ 开头的 URL 将路由到管理区域中的匹配控制器。其他 URL 将路由到匹配的全局控制器。这在大多数情况下工作正常。
我遇到的问题是,如果 URL 与管理区域中的控制器匹配,而全局区域中不存在同名控制器,则请求会错误地路由到管理区域中的控制器。我知道这种情况正在发生,因为我在相关控制器中的匹配操作上放置了断点。
例如,我有一个CalendarController在管理区域中调用的控制器。当我访问时/admin/calendar,它起作用,因为它在 中找到了操作和相应的视图Areas/Admin/Views/Calendar/Index.cshtml。当我访问时出现问题/calendar。我在根级别没有名为 Calendar 的控制器,但由于某种原因,它将请求路由到管理区域CalendarController,这是我不想要的。我希望它返回 404,因为CalendarController根级别不存在。相反,我收到错误,因为它正在根级别(位于 )搜索视图,/Views/Calendar/Index.cshtml即使匹配的控制器位于管理区域中。
如何防止在管理区域中搜索匹配的控制器,除非 URL 中包含 /admin ?
这是相关的路由代码,除了添加命名空间之外,基本上都是现有的。如果没有命名空间,问题仍然会发生。实际应用程序中有更多路线,但我在全新的 MVC 项目中得到了相同的行为。
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "AreaProblem.Areas.Admin.Controllers" }
); …Run Code Online (Sandbox Code Playgroud)