在Angular 1.x中,UI-Router是我的主要工具.通过返回"解析"值的承诺,路由器将在呈现指令之前等待承诺完成.
或者,在Angular 1.x中,null对象不会使模板崩溃 - 所以如果我不介意暂时不完整的渲染,我可以$digest
在promise.then()
填充最初为空的模型对象后使用它进行渲染.
在这两种方法中,如果可能的话,我宁愿等待加载视图,如果无法加载资源,则取消路由导航.这为我节省了"取消导航"的工作.编辑:注意这具体意味着这个问题要求Angular 2期货兼容或最佳实践方法来执行此操作,并要求尽可能避免使用"Elvis操作符"!因此,我没有选择那个答案.
但是,这两种方法都不适用于Angular 2.0.当然,有一个标准的解决方案计划或可用于此.有谁知道它是什么?
@Component() {
template: '{{cats.captchans.funniest}}'
}
export class CatsComponent {
public cats: CatsModel;
ngOnInit () {
this._http.get('/api/v1/cats').subscribe(response => cats = response.json());
}
}
Run Code Online (Sandbox Code Playgroud)
以下问题可能反映了相同的问题:加载数据PROMISE后的Angular 2渲染模板.请注意,问题中没有代码或接受的答案.
EF OjbectSet.Include(a => a.parent)
扩展程序不可用.我知道我可以添加代码来模仿它,但根据EntityFramework 4升级到5,lambda不可用它应该可用.我有using System.Data.Entity
,并在我的主项目升级到EF 5.
查看Assembly System.Data.Entity.dll,v4.0.0.0(C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.Data.Entity.dll)中的元数据
...
public ObjectQuery<System.Data.Common.DbDataRecord> GroupBy(string keys, string projection, params ObjectParameter[] parameters);
public ObjectQuery<T> Include(string path);
public ObjectQuery<T> Intersect(ObjectQuery<T> query);
Run Code Online (Sandbox Code Playgroud)
此处包含lambda变体Include没有声明.我已经检查过,文件版本是4.0.30319.17929,根据数据库第一代实体框架5 System.Data.Entity vs EntityFramework.该项目正在生成4.5装配.
如果它是相关的,则EntityFramework本身不会在此程序集中引用.它只有一些数据服务,因此它包括对System.Data.Entity和主数据层项目的引用.
有任何想法吗?
我想在MVC3项目中使用jQuery validate强制我的"同意条款"复选框.我目前从"MS数据注释属性"+"MS MVC3不引人注目的jQuery验证"获得服务器/客户端DRY/SPOT验证.
这是一个独立的测试(由MVC3生成的纯HTML).为什么它不起作用,拜托?运行时,验证确保填写"联系人姓名"字段,但不关心复选框的状态.
<!DOCTYPE html>
<html>
<head>
<title>RequiredCheckbox</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.microsoft.com/ajax/jQuery.Validate/1.7/jQuery.Validate.js"></script>
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js"></script>
<script type="text/javascript" language="javascript">
$(function () {
// http://itmeze.com/2010/12/checkbox-has-to-be-checked-with-unobtrusive-jquery-validation-and-asp-net-mvc-3/
$.validator.unobtrusive.adapters.add("mandatory", function (options) {
options.rules["required"] = true;
if (options.message) {
options.messages["required"] = options.message;
}
}
});
$.validator.unobtrusive.parse(document);
});
</script>
</head>
<body>
<div>
<form>
<input data-val="true" data-val-mandatory="The field Terms Are Accepted is invalid." id="isTermsAccepted" name="isTermsAccepted" type="checkbox" value="true" />
<input name="isTermsAccepted" type="hidden" value="false" />
<span class="field-validation-valid" data-valmsg-for="isTermsAccepted" data-valmsg-replace="true"></span>
<input data-val="true" data-val-required="The Contact Name field is required." …
Run Code Online (Sandbox Code Playgroud) .NET 4.5,MVC 5:ClaimsAuthenticationManager,IAuthenticationFilter,OWIN Forms Authentication和ClaimsPrincipals都是新的,因为我上次触及了我的网站的身份验证功能.我发现所有说这个或那个是正确方法的文档都缺乏清晰度.我甚至无法分辨哪些功能是互斥的.
该文档说旧的ASP.NET FormsAuthenticationModule
不支持声明,但新的OWIN不支持cookieless.然而,我觉得OWIN打算成为前进的功能?
推进正确的方向将是值得赞赏的,我的大脑就是这样.
我经常需要在枚举和另一个对象(本例中为字符串)之间进行全局硬编码映射.我想共同定位枚举和映射定义以阐明维护.
如您所见,在此示例中,创建了一个带有一个静态字段的恼人类.
public enum EmailTemplates
{
// Remember to edit the corresponding mapping singleton!
WelcomeEmail,
ConfirmEmail
}
public class KnownTemplates
{
public static Dictionary<EmailTemplates, string> KnownTemplates;
static KnownTemplates() {
KnownTemplates.Add(EmailTemplates.WelcomeEmail, "File1.htm");
KnownTemplates.Add(EmailTemplates.ConfirmEmail, "File2.htm");
}
}
Run Code Online (Sandbox Code Playgroud)
有时,映射类可以具有更多功能和有意义的名称,并且映射活动甚至可以是私有的.但这只会污染维护/关联问题.
任何人都有一个良好的模式吗?
我正在寻找一个与Gulp一起使用的插件链,它提供:
我目前有前四个,但我找不到现有插件的组合,它也会给我最后一个(URL rebasing).我没有找到任何发布源映射的URL rebasing插件.
为了清楚起见,我的问题是,当我从项目开发文件夹中编译多个小CSS文件并将它们输出到公共文件夹时,连接产生的移动会破坏相对URL,例如背景图像.
EDITS:
听起来我目前使用的工具链已经打算解决这个问题.所以,这表面上是答案.但是,这引发了另一个问题,即所需语法应该如何工作.
这个问题在理论上有很多重复:
root
Windows上的选项不幸的是,没有答案实际解释语法,他们只是展示伏都教; 所以我不知道为什么以下不起作用.如果我能解决它,我会回到这里并标记这个被接受,表明这个工具链确实做了我需要的.
源文件:
/assets
/site
styleInput1.less "url(../site/logo.png)"
logo.png
background.png
/application
styleInput2.less "url(../site/background.png)"
Run Code Online (Sandbox Code Playgroud)
gulp任务:
gulp.task(filename, function () {
return gulp.src(files)
.pipe(sourcemaps.init())
.pipe(less())
.pipe(minifyCss({ relativeTo: './compiled' }))
.pipe(concat(filename))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./compiled'));
});
Run Code Online (Sandbox Code Playgroud)
输出,URL损坏.注意多个缺陷.虽然CSS是相对于所需资产引发的目录级别,但已添加了一个额外的父目录(!).此外,其中一个URL已更改硬资产文件夹名称(!).很奇怪:
/compiled
styleOutput1.css "url(../../compiled/logo.png)"
styleOutput2.css "url(../../site/background.png)"
Run Code Online (Sandbox Code Playgroud)
我为继续伏都教道歉,但这是我的工作管道:
.pipe(minifyCss({ relativeTo: './compiled', target: './compiled' }))
Run Code Online (Sandbox Code Playgroud)
而正确的输出:
/compiled
styleOutput1.css "url(../assets/site/logo.png)"
styleOutput2.css "url(../assets/site/background.png)"
Run Code Online (Sandbox Code Playgroud) 是否有一种方法可以保留验证的单一定义,允许立即进行客户端验证,并且仍然提供服务器端验证的优势?
我熟悉以下两种方法:
第一个基于模型中陈述的规则在Razor输出中呈现ng-validation语法.当Razor的观点经常不能直观地与一个组织良好的Angular应用程序配对时,这似乎让我对构建Razor视图过于紧密.我可以使用这种方法,但似乎更多的是想要复制"不引人注目的jQuery/MVC验证"的人,而不是建立一个非常适合Angular的东西.
第二种方法只是将服务器端验证返回给Angular进行渲染.它也没有彻底完成它.如果需要,我可以在没有客户端验证的情况下运行,因为单页应用程序仍然不会屏幕闪烁...但它并不理想.
例如,可能有一个工具集可以直接在WebAPI上直接反映验证规则,并在Angular应用程序中使用它们.还是我还没找到的另一种方法?
在https://www.youtube.com/watch?v=lHbWRFpbma4#t=1336,演示者似乎暗示这个问题已经为Angular得到了很好的解决,并且引用了specification
(DDD使用规范模式进行验证).如果你知道有任何工具可以解决我的问题,我很乐意听到.
ps看起来这几乎肯定是一个经常被问到的问题.对不起,我发布之前无法在这里找到答案
pps我目前正计划使用Entity Framework,但我会转而解决这个问题.哎呀,我会考虑转换到一个完全不同的平台,这是我的第一个以角度为中心的项目.
我安装了VS 2013.它安装了SQL Server 2012 Express和LocalDB.这很好,除了我需要全文搜索,它没有安装"高级服务"(我在安装过程中没有看到一个选项).
我已经下载了带有高级服务的SQL Server 2012 Express来添加它,但它似乎想要在新实例上安装它.这对你来说听起来很熟悉吗?您是如何将SQL Server高级服务添加到LocalDB安装的?
我在上一个VS版本中遇到了同样的问题,然后又重新安装了SQL Server.我为带着一个世俗问题来到社区而道歉,但它让我感到烦恼.:)
这是我做的:
sql-server visual-studio sql-server-2012 localdb visual-studio-2013
我目前正在将我的Angular 2应用程序与WebPack捆绑在一起.我们仍在进行快速循环,因此我们希望包含很少变化的Angular 2 UMD CDN准备捆绑包,而不是为我们的构建和应用程序加载过程添加延迟,例如:
<script src="https://npmcdn.com/@angular/core@2.0.0-rc.3/bundles/core.umd.min.js"></script>
<script src="https://npmcdn.com/@angular/common@2.0.0-rc.3/bundles/common.umd.min.js"></script>
<script src="https://npmcdn.com/@angular/compiler@2.0.0-rc.3/bundles/compiler.umd.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
plugins: [ new webpack.optimize.CommonsChunkPlugin("vendor", "vendor.bundle.js") ]
,我的应用程序包很小,但我手动构建一个单独的,唯一的1MB包,其中包含大部分Angular 2框架,每个版本.此文件根据我的应用程序稍微改变每个版本,并且在我的应用程序或各种应用程序的版本之间不可移植,并且没有"CDN"的好处.当然,我必须包含此文件才能运行我的应用程序.@angular|rxjs
,例如plugins: [ new webpack.IgnorePlugin(/\@angular|rxjs/) ]
,它会排除供应商文件,但会在应用程序包的顶部插入硬编码异常/抛出错误.externals: ['@angular/core', ...
,我function(module, exports) { module.exports = @angular/core; },
在我的应用程序包中输出,这显然不起作用.WebPack文档并不是非常明确,但我想我可以指定一个libraryTarget
或引用的resolve函数,它将指示WebPack在模块加载中进行编译.System.register()
调用我所期望的NPM命名空间,例如System.register("myapp/boot", ['@angular/core', ...
,但我仍在使用SystemJS配置调用UMD的.另外,相对于WebPack生成的文件,此文件的大小为25%.如何构建不依赖于唯一重新打包的Angular 2包的应用程序包?
我目前正在建立对抗RC3.我的进程目前是WebPack,如上所述,但我会转移到另一个工具集,如果这使它更容易.
做了一些研究,我想我被WebPack的"Loader"术语误导了.我必须使用模块加载器,它看起来不像WebPack有一个适用于此的工具.
要分配UMD包模块名称空间(以及连接依赖项),不能在脚本标记中加载它们.相反,它们必须使用给定的this
上下文进行评估,以充当模块引用.这意味着即使我希望它们全部同步加载,我仍然需要配置其他类似SystemJS的东西来加载它们,因此它们的上下文被控制/包装.
这个Angular 2 plunker接近我正在寻找的东西.它使用Angular …
如何直接从 Visual Studio SQL Server 数据库项目构建 EF Core?
优选以下解决方案:
scaffold-dbcontext -connection "provider=ssdtproject, name=myprojectname.sqlproj"
scaffold-dbcontext -ddl "ssdtprojectoutput.sql"
scaffold-dbcontext -ssdtschema "ssdtproject.dacpac"
maintained-third-party-tool myprojectname.sqlproj -EfModelGenerationParameters
Run Code Online (Sandbox Code Playgroud)
这就是整个问题。以下是我更详细的情况,以便您能够提供替代解决方案:
尽管 MS 承认 EF Core 尚未做好生产准备,但距 EF 6 进展停止已有 3-4 年了,EF Core 是唯一具有 NETCore 兼容性的 LINQ 代码类似路径。标题为“所以您将使用 EF Core ”的传奇由此开始。
这部分内容固执己见,但对我来说(基于 25 年以上的企业软件设计和开发经验)Code-First 绝对是行不通的。对于小型的一周应用程序概念来说,这很好,但我认为没有合理的模式/流程/实践来集成约束、视图等。如果没有设计视图,真正的业务应用程序最终会导致开发人员在 LINQ 表达式中重复逻辑基础知识到处都是,用静态字段乱扔代码来支持 LINQ-to-SQL 查询,使用 LinqKit 混淆微组合模式,等等。如果没有约束,我们最终会得到十倍于处理运行时错误的防御性代码要求,快速发展的单元集成测试和演示失败成为常态。要么我们的面向对象专家需要成为 SQL 专家,要么相反,我们大大增加了寻找和适当补偿工程师的难度。所有这些问题都是我在四年前与 Rowan Miller(他最近离开 EF 团队,这对于短期解决方案来说不是一个好兆头)的一次详细对话中指出的。
模型优先(.edmx
早期 EF 版本中的视觉设计器)显然是不可能的,因为 MS 对此的解决方案是声称代码优先实际上就是模型优先,并且不再理会它。因此,为清楚起见,我们将其称为“合同优先”的真正中立的方法在 EF Core 中并不存在。
所以,这个咆哮(抱歉,沮丧)让我想到了数据库优先,因此Scaffold-DbContext
. 我们的数据库架构目前是一个版本控制的 Visual Studio SQL Server 数据库项目。除了一些已知的问题 …
entity-framework ef-database-first entity-framework-core sql-server-data-project