我认识到Angular Material的实施正在进行中,但我今天早上花了一些时间试图熟悉它.但是,我真的很难让演示中显示的概念在一个独立的站点中工作.
似乎当指令喜欢<md-toolbar>和<md-content>用于具有固定高度的容器时,它们工作得很好.我正在努力将它们扔进<body标签内,并且能够像本例中那样使用粘性页脚布局.
我尝试了很多变体,但是这里有一个例子,当从DOM中删除内容时它不起作用.当内容在那里时,它会超出视口,而页脚会像你期望的那样被放置.在Chrome和Firefox的最新版本中,此示例在删除内容时将页脚保持在底部,但在IE中这根本不起作用.在IE中,无论主要内容是否显示,页脚都会浮动在标题下方.
演示: http ://codepen.io/sstorie/pen/xbGgqb
<body ng-app="materialApp" layou-fill layout='column'>
<div ng-controller="AppCtrl" layout='column' flex>
<md-toolbar class='md-medium-tall'>
<div class="md-toolbar-tools">
<span>Fixed to Top</span>
<span flex></span>
<md-button class="md-raised" ng-click="toggleContent(!displayContent)">toggle content</md-button>
</div>
</md-toolbar>
<main class='md-padding' layout="row" flex>
<div flex>
<md-card ng-if="displayContent" ng-repeat = "card in cards">
{{$index}}
{{card.title}}
{{card.text}}
</md-card>
</div>
<div flex>
<md-card ng-if="displayContent" ng-repeat = "card in cards">
{{$index}}
{{card.title}}
{{card.text}}
</md-card>
</div>
</main>
<md-toolbar class="md-medium-tall">
<div layout="row" layout-align="center center" …Run Code Online (Sandbox Code Playgroud) 我在material.angularjs.org网站上发布了这个可能的问题,但是想在这里发布这个以防万一有基于CSS的解决方案,我应该知道.
我正在尝试创建一个"砌体布局",其中我有多列不同尺寸的图像.我正在尝试使用卡片来保存每张图片,而在Chrome和Firefox中,它的工作方式与我预期的完全相同.卡片缩放到窗口(使用flex)并且图像缩放匹配卡片的大小.然而,在IE 11上,卡的高度似乎与图像的实际高度保持一致,即使它被缩小到较小的尺寸.我创建了一个Codepen来演示这个问题:
http://codepen.io/sstorie/pen/myJWxQ
<body ng-app="materialApp" layout-fill>
<div ng-controller="AppCtrl" layout='column'>
<md-toolbar class='md-medium-tall'>
<div class="md-toolbar-tools">
<span>Fixed to Top</span>
</div>
</md-toolbar>
<div class='md-padding' layout="row" flex>
<div layout="row" flex>
<div layout="column" ng-repeat="photoColumn in data.photos3p" flex>
<md-card class="card" data-ng-repeat="photo in photoColumn">
<img ng-src="{{photo.path}}">
</md-card>
</div>
</div>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
...这里是我添加的唯一非物质CSS:
.card img {
width: 100%;
height: auto;
}
Run Code Online (Sandbox Code Playgroud)
这是在Chrome中运行的示例.请注意卡片的宽度和高度与图像有关:

...但是这里的结果在IE11中看起来如何.您可以在IE中看到水平定向的图像向下缩放其高度以适应卡的宽度,但卡的高度不会随之缩小.它仍然是图像的高度.

是否有类似这样的CSS修复,或者它是如何<md-card>实现该指令的问题?
要清楚,我意识到这个图书馆正在进行中,到目前为止我很喜欢它.我对CSS不太满意,所以不确定这是否可以解决,或者我是否需要等待在材料代码中修复问题.
我在Windows 7笔记本电脑上运行Visual Studio 2015,每次在IDE的调试器中启动应用程序时,都会出现以下异常:
无法在DLL"advapi32.dll"中找到名为"EventSetInformation"的入口点.
我在github上的coreclr存储库中找到了对此的引用,表明这是在Windows 8中添加的API.我的情况类似于github问题,我可以单击"继续"忽略该异常,我的应用程序运行得很好.然而,这真的很烦人,因为我不能只是开始调试应用程序而不等待抛出这个异常,所以我可以手动继续它.
我的问题是,是否有人知道我是否可以阻止此异常在IDE中破坏?这种情况目前只是令人讨厌,但我很想摆脱.
作为参考,在这种情况下,更改Visual Studio中的Exception设置似乎不会更改行为.以下是启用和禁用CLR异常的屏幕截图,以及异常:
解
这是由一般调试器选项引起的,该选项似乎覆盖了任何特定于异常的设置.正如@John在下面的回答中指出的那样,您可以禁用调试器选项来停止此行为.当这个选项被选中,我会得到破发点中的说明,但取消选中它停止的是,提供什么,我一直在寻找:
我正在努力模拟与StackExchange.Redis库相关的行为,但无法弄清楚如何正确模拟它使用的密封类.一个具体的例子是我的调用代码我正在做这样的事情:
var cachable = command as IRedisCacheable;
if (_cache.Multiplexer.IsConnected == false)
{
_logger.Debug("Not using the cache because the connection is not available");
cacheAvailable = false;
}
else if (cachable == null)
{
Run Code Online (Sandbox Code Playgroud)
其中的关键行是_cache.Multiplexer.IsConnected我正在检查以确保在使用缓存之前我有一个有效的连接.所以在我的测试中,我想用这样的方式模拟这种行为:
_mockCache = new Mock<IDatabase>();
_mockCache.Setup(cache => cache.Multiplexer.IsConnected).Returns(false);
Run Code Online (Sandbox Code Playgroud)
但是,虽然该代码编译得很好,但在运行测试时出现此错误:

我也试过模拟多路复用器本身,并将其提供给我的模拟缓存,但我遇到了多路复用器类被密封的事实:
_mockCache = new Mock<IDatabase>();
var mockMultiplexer = new Mock<ConnectionMultiplexer>();
mockMultiplexer.Setup(c => c.IsConnected).Returns(false);
_mockCache.Setup(cache => cache.Multiplexer).Returns(mockMultiplexer.Object);
Run Code Online (Sandbox Code Playgroud)
...但是会导致此错误:

最终我想在我的测试中控制该属性是真还是假,所以有没有正确的方法来模拟这样的东西?
我最近为开源redux-ui-router库添加了一个打字稿定义文件,但是我现在收到的错误类似于下面的Typescript 1.7.3:
错误TS2656:导出的外部包类型文件'C:/.../ node_modules/redux-ui-router/index.d.ts'不是模块.请与软件包作者联系以更新软件包定义.
我试图在我的打字稿文件中使用这样的代码导入这个库:
import ngReduxUiRouter from "redux-ui-router";
Run Code Online (Sandbox Code Playgroud)
我是Typescript的新手,我找不到这个定义文件在npm包中包含时应该是什么样子的清晰描述.有一个wiki条目讨论npm包的类型,但除了重复应该使用外部模块的方向之外,没有一个具体的例子可以使用.
更正
我已经尝试删除declare module "redux-ui-router" {代码,这似乎在重新启动webpack后工作,我正在使用它来编译所有内容(为简洁起见,我删除了注释):
export interface ReduxUIRouterAction {
type: string;
payload: any;
}
export interface ReduxUIRouterState {
currentState: Object;
currentParams: Object;
prevState: Object;
prevParams: Object;
}
export function router(state: ReduxUIRouterState, action: ReduxUIRouterAction): ReduxUIRouterState;
export var ngReduxUiRouter: string;
export function stateGo(to: string, params?: Object, options?: Object): ReduxUIRouterAction;
export function stateReload(state: any): ReduxUIRouterAction;
export function stateTransitionTo(to: string, params?: Object, options?: Object): ReduxUIRouterAction;
export …Run Code Online (Sandbox Code Playgroud) 我们有一个以下环境:
...现在我们想开始添加一个OWIN托管的Web应用程序,该应用程序将使用NancyFx来提供服务器呈现的页面以及几个AngularJS SPA.此Nancy网站不会托管任何API,但可能会使用现有API中的数据.我想在OWIN管道中添加身份验证,以帮助保护我们的Angular应用程序不被发送给没有访问权限的用户.
这与发送SPA代码相反,并且让Angular确定用户是否应该看到任何内容.在那种情况下,我们已经公开了javascript代码库,我们希望避免这种情况.
我试图了解如何配置此Nancy站点以使用隐式流对IdentityServer的用户进行身份验证.我之前在独立SPA中实现了这种身份验证方案(其中所有身份验证都由AngularJS代码处理,令牌存储在HTML5本地存储中),但我对如何在OWIN管道中正确解决这个问题感到有点迷茫.
我认为OWIN cookie认证中间件是答案,但这是否意味着以下内容?
......或者我在想这一切都错了?
作为参考,我已经阅读了以下帖子,他们非常有帮助,但我不太了解OWIN的大局.接下来我将尝试使用UseOpenIdConnectAuthentication中间件,但我将非常感谢SO可能提供的任何指导.
https://github.com/IdentityServer/IdentityServer3/issues/487
我正在努力构建一个Ionic移动应用程序,我计划使用Firebase的auth和实时数据库产品.我试图了解是否可以将Firebase auth合并到关联的ASP.NET Core MVC站点内的服务器端处理中.这将允许我使用一些"静态"服务器端页面来处理订阅,付款等,但仍然使用与移动应用程序相同的基于Firebase的用户方案.
我知道Firebase面向javascript客户端,我发现这个验证包含Authorization asp.net核心内API 的头部请求的示例,因此可以在asp.net管道中验证firebase令牌.但是,这假设javascript客户端正在发出所有请求,而我想将令牌存储在某些cookie中,我可以让浏览器无缝地提供.这将让我处理我的应用程序中的静态,非JavaScript页面上的身份验证.
我认为必须有一些方法来启动对firebase的身份验证,并将响应重定向到MVC操作.然后你可能会在asp.net中设置一个"indentity"cookie,它会在页面刷新时保持不变.或者我只是基于我对其工作原理的理解?
评论Firebase身份验证asp.net核心的可能重复:
在我看来,这不是一个骗局,因为这个问题正在讨论验证客户端提供的JWT令牌(可能是javascript).我相信我最初包含的链接演示了解决该问题的方法.
我有一种情况,我使用64位版本的Visual Studio代码来编写/调试powershell脚本.但是,由于Powershell脚本正在做什么,它需要在32位版本的Powershell中运行.它使用一些库来访问MS Access文件,所以我还没有找到一种方法让Powershell x64中的东西工作.
如果VS Code本身作为64位运行,有没有办法告诉VS Code运行32位版本的Powershell?例如,我可以修改launch.json文件以指定powershell本身的路径吗?
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "PowerShell",
"request": "launch",
"name": "PowerShell Launch Current File",
"script": "${file}",
"args": [],
"cwd": "${file}"
},
...
]
}
Run Code Online (Sandbox Code Playgroud) 我正在使用WebAPI构建API,并且已经使用NLog在整个堆栈中进行日志记录.我的API解决方案有两个主要项目,包括:
我想要实现的是自动生成一个唯一的ID,我可以将其附加到日志语句,以便在处理单个请求时写入的任何日志,无论它们来自哪个层,都可以链接回原始请求.我也希望这可以在不传递唯一ID的情况下工作,或者让日志语句本身关注将它包含在他们的调用中.
考虑到这个目标,我开始考虑编写一个自定义委托处理程序来拦截每个请求(在本文后面作为指导)并在NLog中添加一个唯一的ID作为属性.我最终得到了以下内容:
/// <summary>
/// This class is a WebAPI message handler that helps establish the data and operations needed
/// to associate log statements through the entire stack back to the originating request.
///
/// Help from here: http://weblogs.asp.net/fredriknormen/log-message-request-and-response-in-asp-net-webapi
/// </summary>
public class InitializeLoggingMessageHandler : DelegatingHandler
{
private ILogger _logger;
// The logger is injected with Autofac
//
public InitializeLoggingMessageHandler(ILogger logger)
{
_logger = logger;
}
protected async override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) …Run Code Online (Sandbox Code Playgroud) angularjs ×2
c# ×2
.net ×1
asp.net-core ×1
asp.net-mvc ×1
css ×1
exception ×1
firebase ×1
logging ×1
moq ×1
nancy ×1
nlog ×1
npm ×1
owin ×1
powershell ×1
typescript ×1
unit-testing ×1