我的控制器有如下代码:
$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) 对于angularjs来说很新,所以请原谅我,如果这很容易的话.
我想使用angularjs的ng-repeat为输入字段创建动态行.基本上我有一个问题对象,我想添加该问题的选项,默认情况下,用户将有2行选项,但他/她可以添加更多选项来问题购买添加另一行.
<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)