小编sha*_*non的帖子

等待Angular 2在渲染视图/模板之前加载/解析模型

在Angular 1.x中,UI-Router是我的主要工具.通过返回"解析"值的承诺,路由器将在呈现指令之前等待承诺完成.

或者,在Angular 1.x中,null对象不会使模板崩溃 - 所以如果我不介意暂时不完整的渲染,我可以$digestpromise.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渲染模板.请注意,问题中没有代码或接受的答案.

promise observable dependency-resolver angular

70
推荐指数
3
解决办法
10万
查看次数

缺少实体框架包含(lambda)扩展

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和主数据层项目的引用.

有任何想法吗?

.net lambda entity-framework

55
推荐指数
1
解决办法
2万
查看次数

MVC3:通过jQuery验证需要复选框吗?

我想在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)

asp.net-mvc jquery jquery-validate

44
推荐指数
2
解决办法
3万
查看次数

ClaimsAuthenticationManager与IAuthenticationFilter对比OWIN Forms身份验证

.NET 4.5,MVC 5:ClaimsAuthenticationManager,IAuthenticationFilter,OWIN Forms Authentication和ClaimsPrincipals都是新的,因为我上次触及了我的网站的身份验证功能.我发现所有说这个那个是正确方法的文档都缺乏清晰度.我甚至无法分辨哪些功能是互斥的.

该文档说旧的ASP.NET FormsAuthenticationModule不支持声明,但新的OWIN不支持cookieless.然而,我觉得OWIN打算成为前进的功能?

  1. 产品路线图是否说明哪种方法是网络应用的前进方向?
  2. ClaimsAuthenticationManager是否与Web应用程序的OWIN Forms身份验证同义?
  3. ClaimsAuthenticationManager和全局IAuthenticationFilter是互斥的吗?

推进正确的方向将是值得赞赏的,我的大脑就是这样.

asp.net authentication asp.net-mvc owin asp.net-mvc-5

14
推荐指数
1
解决办法
2280
查看次数

使用枚举类保持枚举到对象的映射?

我经常需要在枚举和另一个对象(本例中为字符串)之间进行全局硬编码映射.我想共同定位枚举和映射定义以阐明维护.

如您所见,在此示例中,创建了一个带有一个静态字段的恼人​​类.

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)

有时,映射类可以具有更多功能和有意义的名称,并且映射活动甚至可以是私有的.但这只会污染维护/关联问题.

任何人都有一个良好的模式吗?

c# mapping enums design-patterns

11
推荐指数
1
解决办法
6489
查看次数

使用Gulp连接/重定位CSS文件

我正在寻找一个与Gulp一起使用的插件链,它提供:

  • 源地图支持
  • 缩小
  • 级联
  • 用于解决重定位/连接的URL替换(rebase)

我目前有前四个,但我找不到现有插件的组合,它也会给我最后一个(URL rebasing).我没有找到任何发布源映射的URL rebasing插件.

为了清楚起见,我的问题是,当我从项目开发文件夹中编译多个小CSS文件并将它们输出到公共文件夹时,连接产生的移动会破坏相对URL,例如背景图像.

EDITS:

听起来我目前使用的工具链已经打算解决这个问题.所以,这表面上是答案.但是,这引发了另一个问题,即所需语法应该如何工作.

这个问题在理论上有很多重复:

不幸的是,没有答案实际解释语法,他们只是展示伏都教; 所以我不知道为什么以下不起作用.如果我能解决它,我会回到这里并标记这个被接受,表明这个工具链确实做了我需要的.

源文件:

/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)

css gulp gulp-sourcemaps clean-css

8
推荐指数
1
解决办法
3107
查看次数

Angular with .NET WebAPI验证和单点实证

是否有一种方法可以保留验证的单一定义,允许立即进行客户端验证,并且仍然提供服务器端验证的优势?

我熟悉以下两种方法:

第一个基于模型中陈述的规则在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,但我会转而解决这个问题.哎呀,我会考虑转换到一个完全不同的平台,这是我的第一个以角度为中心的项目.

validation asp.net-mvc angularjs

7
推荐指数
1
解决办法
967
查看次数

将SQL Server Express"高级"功能添加到Visual Studio安装的LocalDB

我安装了VS 2013.它安装了SQL Server 2012 Express和LocalDB.这很好,除了我需要全文搜索,它没有安装"高级服务"(我在安装过程中没有看到一个选项).

我已经下载了带有高级服务的SQL Server 2012 Express来添加它,但它似乎想要在新实例上安装它.这对你来说听起来很熟悉吗?您是如何将SQL Server高级服务添加到LocalDB安装的?

我在上一个VS版本中遇到了同样的问题,然后又重新安装了SQL Server.我为带着一个世俗问题来到社区而道歉,但它让我感到烦恼.:)

这是我做的:

  • 启动SQL Server Express Advanced安装
  • 选择修改现有实例
  • 检查实例功能/数据库引擎服务下的"全文"
  • 在"实例配置"屏幕中发现已安装的实例列表为空,并且它想要安装新实例

sql-server visual-studio sql-server-2012 localdb visual-studio-2013

6
推荐指数
1
解决办法
3642
查看次数

使用UMD捆绑包捆绑Angular 2应用程序(不构建供应商捆绑包)

我目前正在将我的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)
  • 当我让WebPack做它的事情时,程序包运行正常但只有几MB,因为它不利用预先构建的bundle或分离出Angular 2"vendor"代码.
  • 当我使用Angular 2 WebPack建议书时,例如:plugins: [ new webpack.optimize.CommonsChunkPlugin("vendor", "vendor.bundle.js") ],我的应用程序包很小,但我手动构建一个单独的,唯一的1MB包,其中包含大部分Angular 2框架,每个版本.此文件根据我的应用程序稍微改变每个版本,并且在我的应用程序或各种应用程序的版本之间不可移植,并且没有"CDN"的好处.当然,我必须包含此文件才能运行我的应用程序.
  • 当我使用IgnorePlugin进行过滤时@angular|rxjs,例如plugins: [ new webpack.IgnorePlugin(/\@angular|rxjs/) ],它会排除供应商文件,但会在应用程序包的顶部插入硬编码异常/抛出错误.
  • 当我使用WebPack外部时,例如externals: ['@angular/core', ...,我function(module, exports) { module.exports = @angular/core; },在我的应用程序包中输出,这显然不起作用.WebPack文档并不是非常明确,但我想我可以指定一个libraryTarget或引用的resolve函数,它将指示WebPack在模块加载中进行编译.
  • 当我完全抛弃WebPack并使用TypeScript编译器捆绑器(根据本指南,它使用UMD捆绑包)时,我会System.register()调用我所期望的NPM命名空间,例如System.register("myapp/boot", ['@angular/core', ...,但我仍在使用SystemJS配置调用UMD的.另外,相对于WebPack生成的文件,此文件的大小为25%.
  • 如果我在前面的项目中使用SystemJS,我希望在构建期间或作为并行进程进行此编译,而不是作为文件保存的一部分.我猜SystemJS-Builder(请参阅此处此处的相关问题)是否可以这样做?也许这也会产生较小的文件大小,即Typescript集成的"bundler".

如何构建不依赖于唯一重新打包的Angular 2包的应用程序包?

我目前正在建立对抗RC3.我的进程目前是WebPack,如上所述,但我会转移到另一个工具集,如果这使它更容易.

做了一些研究,我想我被WebPack的"Loader"术语误导了.我必须使用模块加载器,它看起来不像WebPack有一个适用于此的工具.

要分配UMD包模块名称空间(以及连接依赖项),不能在脚本标记中加载它们.相反,它们必须使用给定的this上下文进行评估,以充当模块引用.这意味着即使我希望它们全部同步加载,我仍然需要配置其他类似SystemJS的东西来加载它们,因此它们的上下文被控制/包装.

这个Angular 2 plunker接近我正在寻找的东西.它使用Angular …

bundle systemjs webpack angular

6
推荐指数
1
解决办法
7007
查看次数

数据库项目中的 Scaffold EF Core

如何直接从 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

6
推荐指数
1
解决办法
1822
查看次数