小编Rah*_* R.的帖子

如何解决Jasmine单元测试中的$ q.all承诺?

我的控制器有如下代码:

$q.all([qService.getData($scope.id), dService.getData(), qTService.get()])
.then(function (allData) {
  $scope.data1 = allData[0];
  $scope.data2 = allData[1];
  $scope.data3 = allData[2];
});
Run Code Online (Sandbox Code Playgroud)

在我的单元测试中,我正在做这样的事情:

beforeEach(inject(function($rootScope, $q, $location){// and other dependencies... 
  qServiceSpy = spyOn(_qService, 'getData').andCallFake(function () {
    var data1 = {
      id: 1,
      sellingProperty: 1,
    };
    var d = $q.defer();
    d.resolve(data1);
    return d.promise;
  });

  dServiceSpy = spyOn(_dService, 'getData').andCallFake(function () {
    var data2 = [{ "id": "1", "anotherProp": 123 }];
    var d = $q.defer();
    d.resolve(data2);
    return d.promise;
  });
  qTServiceSpy = spyOn(_qTService, 'get').andCallFake(function () {
    var data3 = [{ …
Run Code Online (Sandbox Code Playgroud)

unit-testing jasmine jasmine-jquery angularjs karma-runner

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

使用ng-repeat为输入字段创建动态行

对于angularjs来说很新,所以请原谅我,如果这很容易的话.

我想使用angularjs的ng-repeat为输入字段创建动态行.基本上我有一个问题对象,我想添加该问题的选项,默认情况下,用户将有2行选项,但他/她可以添加更多选项来问题购买添加另一行.

的jsfiddle

<div nd-repeat="option in question.options">
      <label>{{$index+1}}</label>
          <input type="text" ng-model="option.number" ng-change="change()" />
      <input type="text" ng-model="option.description" ng-change="change()" />
      <br/>
  </div>
Run Code Online (Sandbox Code Playgroud)

基本上我面临两个问题:

我应该如何使用ng-model添加具有2个输入(空)的新行,并在控制器中读取该ng-model?我不希望任何空字段的新选项,我希望在数组中添加选项对象,当用户编辑这些输入字段时,值应通过ng-model在控制器中更新

如何形成问题对象,以便我可以将它发送到服务器,其中问题对象具有作为选项数组的属性(自动映射应该工作)

这是我在服务器端的模型的问题和选项..

public class Option
{
    public int Number { get; set; }
    public string Description { get; set; }
}

public class Question
{
    public int Id { get; set; }
    //....opther properties
    public Option[] Options { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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