但是,答案对我来说还不够.首先,我不能为我的生活找到HierarchyNodeExpressionVisitorOData 5.0.0(不是RC1)(或任何地方,尝试谷歌搜索).
第二,即使我确实发现它返回IHttpActionResult不够好,我需要返回一个打字PageResult<MyViewModel>
所述归还的理由IHttpActionResult是"处理结果可能不再存在的事实IQueryable<MyEntity>".一旦使用$ expand运算符.
但这对我来说没有意义,因为我认为$ expand运算符用于在实体上包含导航属性,就像服务器端Include(e => e.RelatedProperty)一样.至少在我的情况下,我只包括已经在实体上的属性,所以我不必担心它"可能是其他东西".
但是当使用$expand=Department我不能Cast<>()实体类型因为它无法强制SelectAllAndExpand<MyEntity>转换为MyEntity.
如何将展开"展开"回原始实体,以便我可以进行投影?
public PageResult<DateSnippetWithDepartmentsViewModel> GetDatesWithDepartments(ODataQueryOptions<DateSnippet> options)
{
IQueryable query = options.ApplyTo(_context.DateSnippets, new ODataQuerySettings());;
//Exception when using $expand.. cannot cast SelectAllAndExpand<DateSnippet> to DateSnippet
List<DateSnippet> dateSnippets = query.Cast<DateSnippet>().ToList();
var dateSnippetsViewModels = (from d in dateSnippets
select new DateSnippetWithDepartmentsViewModel
{
...
});
var result = new PageResult<DateSnippetWithDepartmentsViewModel>(
dateSnippetsViewModels as IEnumerable<DateSnippetWithDepartmentsViewModel>,
Request.GetNextPageLink(), …Run Code Online (Sandbox Code Playgroud) 在C#中,我可以这样做:
using IAnyType = App.Namespace.Types.IAnyType ;
class BaseClass : IAnyType { }
Run Code Online (Sandbox Code Playgroud)
是否有一个等价的文件?
//BAD:
import IDialogOptions = App.Widgets.Interfaces.IDialogOptions; //A module cannot be aliased as a non-module type
class BaseClass implements IDialogOptions { }
//BAD:
declare var IDialogOptions: App.Widgets.Interfaces.IDialogOptions;
class BaseClass implements IDialogOptions { } //The name IDialogOptions does not exist in the current context
Run Code Online (Sandbox Code Playgroud)
我能得到的最接近的是:
import Interfaces = App.Widgets.Interfaces;
class BaseDialog implements Interfaces.IDialogOptions { }
Run Code Online (Sandbox Code Playgroud)
每次我需要使用这个界面时,使用这个长名称并不理想.我想这不是很糟糕,但我想知道是否有更好的?
我有一个网站作为门户网站类型的应用程序的登陆和信息页面.
我需要链接到门户网站来引发一个动画,它可以很好地过渡到门户视图(导航滑出,新的导航幻灯片,各种小部件淡出,新的淡入淡出等).
但是,我还需要网址www.mydomain.com来portal.mydomain.com.
我愿意去任何长度,两个动画加载门户网站和网址是一个子域名.
据我所知,这样做会违反安全策略而不被允许,但如果要重新加载,则无法实现向门户的流畅过渡.
有什么可以做的吗?也许是在两个域之间建立明确信任的某种方式.
我一直在研究Angular 2 API ComponentResolver以及DynamicComponentResolver创建动态组件,但我有一些不同于那些API提供的东西.
在NG2中是否有任何方法可以基于其类名字符串创建组件?
例如,我正在构建一个可配置的图表仪表板.每个用户的布局都存储在数据库中,说明他们需要2x折线图,3x条形图等.
当我将这些数据加载为json时,它看起来像:
user.charts = [
{ type: 'LineChartComponent', position: ... }
{ type: 'BarChartComponent', position: ... }
];
Run Code Online (Sandbox Code Playgroud)
type我想要反射创建的组件的类名在哪里.
到目前为止,我有以下内容:
this.chartMap = {
'LineChartComponent': LineChartComponent
};
let config = this.configuration;
let chartComponentType = this.chartMap[config.type];
let factory = this.componentFactory.resolveComponentFactory(chartComponentType);
let component = factory.create(this.injector);
component.instance.configuration = config;
this.chartContainer.insert(component.hostView);
Run Code Online (Sandbox Code Playgroud)
但整个想法是消除对的需要chartMap.如何在不引用类型的情况下基于字符串反射性地创建此类?
我遇到了 d3-zoom 的问题,这让我很头疼。
这是一个代码笔:https ://codepen.io/parliament718/pen/BaNQPXx
Y 轴可以拖动它来重新缩放。
问题是,如果我拖动/重新缩放它,然后平移图表,则会出现不需要的“跳跃”。
我不明白如何保持我的 2 个缩放行为同步。
const zoom = d3.zoom()
.on('zoom', () => {
const t = d3.event.transform;
x.domain(t.rescaleX(x2).domain());
y.domain(t.rescaleY(y2).domain());
render();
});
const yAxisZoom = d3.zoom()
.on('zoom', () => {
y.domain(d3.event.transform.rescaleY(y2).domain());
render();
});
const yAxisDrag = d3.drag()
.on('drag', () => {
const factor = Math.pow(2, -d3.event.dy * 0.01);
d3.select('#zoom-chart .plot-area').call(yAxisZoom.scaleBy, factor);
});
Run Code Online (Sandbox Code Playgroud) 我试图显示一个"ajax加载器对话框",它阻止接口(模态),但没有叠加.
这是我初始化对话框的方式:
$("<div></div>").dialog({
modal: true,
dialogClass: "noOverlayDialog",
autoOpen: false, //opened later
...
});
Run Code Online (Sandbox Code Playgroud)
我添加了以下CSS来隐藏叠加层:
.ui-dialog.noOverlayDialog + .ui-widget-overlay { opacity: 0 !important; }
Run Code Online (Sandbox Code Playgroud)
但是,当我调用dialog("open")覆盖闪烁然后消失,就像我使用Javascript隐藏它一样.使用display:none;或相同的效果visibility:hidden.
为了确保它是删除叠加层的css而不是其他东西,我删除了css行,当然,叠加层现在总是可见的.
为什么会这样?我认为静态CSS不应该有这种行为,并且应该在没有闪存的情况下立即隐藏叠加层.
如果我找不到直观的解决方案,也许另一种方法是将模态选项设置为false以防止叠加在一起,然后编写代码以获取模态行为.无论哪种方式,我需要一个有效的解决方案.
我想在uri中将带有嵌套数组的复杂对象发送到GET请求中的MVC操作方法.
请考虑以下代码:
public ActionResult AutoCompleteHandler([FromUri]PartsQuery partsQuery){ ... }
public class PartsQuery
{
public Part[] Parts {get; set; }
public string LastKey { get; set; }
public string Term { get; set; }
}
$.ajax({
url: "Controller/AutoCompleteHandler",
data: $.param({
Parts: [{ hasLabel: "label", hasType: "type", hasIndex : 1 }],
LastKey : "Last Key",
Term : "Term"
}),
dataType: "json",
success: function(jsonData) { ... }
});
Run Code Online (Sandbox Code Playgroud)
这很好用,并使用MVC Web Api中的默认模型绑定器正确绑定.
但是,将其切换为普通MVC而不是WebApi,并且默认模型绑定器会崩溃,并且无法绑定嵌套数组中对象的属性:
观察名单
partsQuery != null //Good
--LastKey == "Last …Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.Net Identity来实现外部登录.用户登录Google后,我会获得谷歌的外部访问令牌.然后我对ObtainLocalAccessToken()进行第二次api调用,该调用将外部访问令牌换成新的本地访问令牌.
ObtainLocalAccessToken()调用VerifyExternalAccessToken(),它通过手动进行http调用和解析user_id来验证提供者的外部访问令牌.
如何利用ASP.NET标识删除整个方法VerifyExternalAccessToken()?
我相信这[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]是为了不是吗?我想ObtainLocalAccessToken()用该属性修饰端点并在header({'Authorization' : 'Bearer xxx' })中发送external_access_token ,它应该填充User.Identity而无需手动验证外部访问令牌?我相信这是目的,但我不能让它发挥作用.我从谷歌发送一个有效的外部访问令牌,它被401拒绝.
我在Startup.Auth btw中有这一行:
app.UseOAuthBearerTokens(new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(),
AuthorizeEndpointPath = new PathString("/AccountApi/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
});
Run Code Online (Sandbox Code Playgroud)
或者,可以使用"/ Token"端点来交换本地端口的外部访问令牌?哪种方法是正确的?
我相信这些说法是正确的:
1)所有通用应用程序都作为全息图工作
2)可以使用HTML/JS构建通用应用程序
这是否意味着我可以使用网络技术构建全息通用应用程序?例如D3.js中的全息可视化仪表板?
我正在尝试使用@HostBinding装饰器在主机元素上设置ngIf.
class ListItem {
@HostBinding('ngIf') active: boolean = false;
}
Run Code Online (Sandbox Code Playgroud)
而且我收到错误:无法绑定到'ngIf',因为它不是'list-item'的已知属性.
但是我在这里看到一个答案似乎暗示了这种用法.
c# ×3
angular ×2
asp.net-mvc ×1
d3.js ×1
history.js ×1
hololens ×1
html5 ×1
jquery ×1
jquery-ui ×1
oauth-2.0 ×1
odata ×1
overlay ×1
typescript ×1