小编pro*_*ock的帖子

使用AngularJS HotTowel中的vm"ControllerAs"语法时,从单元测试文件访问$ scope

请参见此处:http://www.johnpapa.net/angularjss-controller-as-and-the-vm-variable/

正如标题所示,我正在按照本教程[ http://tech.pro/tutorial/1473/getting-started-with-angularjs-unit-testing]来设置单元测试,除了事实之外一切都很好我似乎无法访问vm变量作为我的$ scope.

dashboard.js

var controllerId = 'dashboard';
angular.module('app')
    .controller(controllerId, ['common', 'datacontext', dashboard]);


function dashboard(common, datacontext) {
    var getLogFn = common.logger.getLogFn;
    var log = getLogFn(controllerId);

    var vm = this;      
    vm.title = 'Dashboard';
Run Code Online (Sandbox Code Playgroud)

dashboard.Spec.js

describe("app module", function() {
    beforeEach(module("app"));

    describe("dashboard", function() {
        var scope,
            controller;

        beforeEach(inject(function($rootScope, $controller) {
            scope = $rootScope.$new();
            controller = $controller;
        }));

        it("should assign Dashboard as title", function() {
            controller("dashboard", {
                $scope: scope
            });
            expect(scope.title).toBe("Dashboard");
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我试过的:当我在控制器依赖项中直接命名'$ scope'并为其设置"title"属性时,它可以工作(测试通过).但是,我想保持模式不变. …

jasmine angularjs angularjs-scope hottowel karma-runner

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

在现有SQL Server 2005数据库中将数据类型varchar更改为nvarchar.有什么问题?

我需要将数据库表中的列数据类型从varchar更改nvarchar为支持中文字符(目前,varchar具有这些字符的字段仅显示问号).

我知道如何更改值,但我想知道这样做是否安全.在改变之前有什么需要注意的吗?谢谢!

sql sql-server sql-server-2005 sqldatatypes

28
推荐指数
5
解决办法
4万
查看次数

过滤JQuery数据表后检索行数据

看起来应该很容易但......

有谁知道如何从过滤后的dataTable返回当前行?该oTable.fnGetNodes()方法返回所有行,我只想要过滤(可见,但包括分页)

// filter on division
var oTable = $('#summary-table').dataTable();
oTable.fnFilter(division_text, 2, true);

// Get the nodes from the table  
var nNodes = oTable.fnGetNodes(); // <-- still retrieves original list of rows
Run Code Online (Sandbox Code Playgroud)

我检查过:从Datatables中检索可见数据,但没有太多帮助.

jquery jquery-datatables

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

在两个可空的FK之间添加SQL XOR约束

我想在一个表中定义两个可空FK之间的约束,其中如果一个为空,另一个需要一个值,但两者都不能为空,两者都不能有值.逻辑是派生表从任一FK表继承数据以确定其类型.另外,对于有趣的奖励积分,这是一个坏主意吗?

sql database-design sql-server-2005

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

VS 2015社区 - 由于构建错误而发布失败.

CLR-x86-1.0.0-beta7-15532

VS社区v14.0.23107.0

尝试将我的Web API应用程序发布到本地文件夹,但在"复制到输出路径C:\ temp\PublishTemp"之后,我收到以下消息:

由于构建错误,发布失败.检查错误列表以获取更多详细信息.

但是,没有构建错误或警告.

如果我创建一个新的Web应用程序,它会毫无问题地发布到我的测试文件夹.

我应该在哪里开始排除故障?

visual-studio visual-studio-2015

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

aurelia - 将值绑定到单选按钮

我正在尝试将单选按钮'已检查'状态绑定到我的JSON对象中的布尔值,但它没有被设置.

template:(jobReadinessItems是一个"Items"数组)

<tbody>
  <tr repeat.for="item of jobReadinessItems">
    <td><input id="have" name="readiness" type="radio" checked.bind="item.Have" /></td>
    <td><input id="need" name="readiness" type="radio" checked.bind="item.Need" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

项目(json):

{     
  Have: false,
  Need: true
 }
Run Code Online (Sandbox Code Playgroud)

CS

  public class JobReadinessItemDto
  {

     public bool Have { get; set; }
     public bool Need { get; set; }

   }
Run Code Online (Sandbox Code Playgroud)

但是,如果我以这种方式绑定它,它会显示值(但我当然无法设置它):

 checked.bind="item.Have ? 'on' :  'off'"
Run Code Online (Sandbox Code Playgroud)

为什么它显示"开/关"但不是真/假?

http://plnkr.co/edit/G5Cw9i?p=preview

aurelia aurelia-binding

5
推荐指数
1
解决办法
5532
查看次数

按匹配的Enum的名称值排序List <String>

有点不确定如何做到这一点.我需要以与文件服务器上显示的顺序不同的顺序显示文件列表.

我想一种方法是通过匹配的枚举名称值来排序字符串列表.

假设我有一个完整的字符串列表:

    List<string> filenames = new List<string>();
Run Code Online (Sandbox Code Playgroud)

我有一个相关的枚举以按特定顺序显示文件:

    public enum ProcessWorkFlowOrder 
    {    
       File1,
       File3,
       File2           
    }
Run Code Online (Sandbox Code Playgroud)

List中的"filenames"字符串值将与Enum的名称完全匹配.

按匹配的枚举值匹配和排序FileNames列表的最佳方法是什么?

c# linq enums list matching

3
推荐指数
1
解决办法
1471
查看次数

将css属性添加到jquery元素具有不同的结果 - 类与css()方法

对于我的网站,我将导航菜单的选定名称保存在cookie中,并在回发后我读取cookie,然后将背景图像应用于所选菜单项(使用我用于悬停的相同图像).

我为我的"选定"菜单项做了一个课程:

.selected
 {
color: Green;
height: 40px;
background: url(images/menu_hover.jpg) bottom no-repeat; 
 }
Run Code Online (Sandbox Code Playgroud)

当我在回发后检查cookie时,我想申请这个类:

$("#" + $.cookie(cookieName)).addClass("selected");
Run Code Online (Sandbox Code Playgroud)

它似乎只应用背景图像,而不是颜色或高度.为了使颜色和高度完全起作用,我必须使用.css()方法显式设置它们:

$("#" + $.cookie(cookieName)).css({ 'color': "green" });
$("#" + $.cookie(cookieName)).css({ 'height': "40px" });
Run Code Online (Sandbox Code Playgroud)

只是好奇,如果有人知道为什么会发生这种情况?

css jquery

3
推荐指数
1
解决办法
81
查看次数

MVC 3 - 在foreach循环内部,避免重复的html

我有一个使用"标签"的mvc视图,这些标签中的每一个都显示相同数据的不同形式(可从我的viewmodel获得).数据显示如下:

<div id=tab1>
@foreach (Path p in Model.Paths.Where(r => r.PathType == "HR"))
   { 
(displays html and data)

}
</div>
<div id=tab2>
@foreach (Path p in Model.Paths.Where(r => r.PathType == "IT"))
   { 

 (displays html and data)

}
</div>
Run Code Online (Sandbox Code Playgroud)

等等...因为每次迭代使用相同的html和命名变量(p),不重复这些值的最佳方法是什么?

asp.net asp.net-mvc razor asp.net-mvc-3

3
推荐指数
1
解决办法
2541
查看次数

计算到上午8点的小时数

我知道如何计算两个日期之间的差异,但我如何计算给定日期和下一个上午8点之间的时间?

c# datetime

3
推荐指数
1
解决办法
9120
查看次数

EF核心计算属性标记为只读

背景:每当添加或更新"Item"实体时,我都会覆盖SaveChanges()方法以自动生成LastUpdatedDate.

Item.cs

  [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
  public DateTime? LastUpdated { get; set; }
Run Code Online (Sandbox Code Playgroud)

的DbContext

  protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
      ...
      // generated value
      modelBuilder.Entity<Item>()
                  .Property(b => b.LastUpdated)
                  .ValueGeneratedOnAddOrUpdate();

     }

    public override int SaveChanges()
    {
        var now = DateTime.UtcNow;

        foreach (var item in ChangeTracker.Entries<Item>()
            .Where(e => e.State == EntityState.Added || e.State == EntityState.Modified))
        {
            item.Property("LastUpdated").CurrentValue = now;             
        }           

        return base.SaveChanges();
    } 
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是每当调用SaveChanges()时我得到这个异常:

EntityFramework.Core.dll中出现"System.InvalidOperationException"类型的异常,但未在用户代码中处理.
附加信息:实体类型"Item"上的属性"LastUpdated"在保存后被定义为只读,但其值已被修改或标记为已修改.

要解决这个问题,我必须将IsReadOnlyBeforeSave和IsReadOnlyAfterSave设置为false,如下所示:

        modelBuilder.Entity<Tray>()
            .Property(b => b.LastUpdated)
            .ValueGeneratedOnAddOrUpdate()
            .Metadata.IsReadOnlyBeforeSave = false; 
        modelBuilder.Entity<Tray>()
            .Property(b => b.LastUpdated)
            .Metadata.IsReadOnlyAfterSave = false;
Run Code Online (Sandbox Code Playgroud)

题:

这是在EF Core中设置计算属性的正确方法吗? …

c# entity-framework entity-framework-core

2
推荐指数
2
解决办法
4179
查看次数

需要有关从C#中的Directory.GetFiles方法中过滤掉某些文件名的好方法的建议

在我的MVC应用程序中,我将文件服务器中的文件返回到我的视图中.

为了简化我的问题:假设我从Directory.GetFiles方法返回了file1,file2和file3.我被告知不要返回file2,因此只在我的视图中显示file1和file3.

他们不可避免地会在规则发生变化的时候到来,而file2将需要再次展示.保留当前已过滤文件列表并检查该列表的最明智方法是什么?(不将文件设置为"隐藏"); 我能做的一个想法是将文件名写入存储库并对其进行交叉检查,但我只是担心创建维护灾难...

我有一个更好的解决方案吗?

c# model-view-controller file

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

使用jasmine模拟函数调用

开始使用HotTowelAngular模板,我正在设置单元测试.陷入困境.

我正在尝试在我的控制器中测试一个正好调用另一个名为"log"的函数的函数.这个"log"是一个存储在私有变量中的函数,它从一个名为"common"的依赖项中获取它的值.

我知道我可能需要以某种方式存根这个函数,但我不确定从哪个特定的例子开始,因为我对angularjs,jasmine等等都很新.任何想法都表示赞赏

单元测试:

describe("quote", function () {
    var scope,
        controller,
        common;

    beforeEach(inject(function($rootScope, $controller, _common_) {
        scope = $rootScope.$new();
        common = _common_;
        controller = $controller;
    }));

 describe("removeAttachment", function() {

        it("should remove the attachment when requested", function() {
            var vm = controller("quote", { $scope: scope });

            vm.attachmentList.push({ FileName: "file1", FileAsString: "..." });
            vm.attachmentList.push({ FileName: "file2", FileAsString: "..." });
            vm.attachmentList.push({ FileName: "file3", FileAsString: "..." });
            expect(vm.attachmentList.length).toEqual(3);

            // here's the call where it fails
            vm.removeAttachment(vm.attachmentList[1]);

            expect(vm.attachmentListCount).toEqual(2);
            expect(vm.attachmentList.length).toEqual(2);
            expect(vm.attachmentList[1].FileName).toBe("file3");
        });
    }); …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jasmine angularjs hottowel

0
推荐指数
1
解决办法
3096
查看次数