如何在广播后测试范围是否已填充?我在stackexchange中搜索并发现了一些QA,但没有人回答我的问题.代码工作正常,只是不知道如何测试它.我可以补充一点,我是测试新手,尤其是Jasmine.
那么,这是代码:
服务CrappySvc:
update: function() {
$rootScope.$broadcast('updatecrappy', Crappy.query());
}
Run Code Online (Sandbox Code Playgroud)
控制器GetCrappyCtrl:
$scope.$on('updatecrappy', function(event, crap) {
$scope.crap = crap;
});
Run Code Online (Sandbox Code Playgroud)
茉莉花:
beforeEach(inject(function($rootScope, $httpBackend, $controller, Crappy) {
rootScope = $rootScope;
scope = $rootScope.$new();
Crappy = mockCrappy;
...
spyOn(rootScope, '$broadcast');
...
ctrl = $controller('GetCrappyCtrl', {
$scope : scope,
Crappy : mockCrappy
});
Run Code Online (Sandbox Code Playgroud)
}));
it('$scope.$on should have been triggered', function() {
rootScope.$broadcast('updatecrappy', [{id : 2, name : 'crappy'}]);
expect(rootScope.$broadcast).toHaveBeenCalledWith('updscenes', [{id : 2, name : 'crappy'}]);
Run Code Online (Sandbox Code Playgroud)
});
石
我想用ng-repeat将项目附加到同一行,但它似乎在新行上添加了项目.在下面的示例中,我希望它们位于同一行,如:
"约翰25岁.杰西30岁.约翰娜28岁."
结果是:
25岁的约翰.
杰西30岁.
约翰娜,28岁.
我怎么能做到这一点?
<div ng-init="friends = [
{name:'John', age:25, gender:'boy'},
{name:'Jessie', age:30, gender:'girl'},
{name:'Johanna', age:28, gender:'girl'}
]">
<div ng-repeat="friend in friends">
{{friend.name}} who is {{friend.age}} years old.
</div>
Run Code Online (Sandbox Code Playgroud)
石
这是一个非常新手的问题,但为什么不呢?
document.getElementById("demo").value
Run Code Online (Sandbox Code Playgroud)
更新角度模型?它会更新输入字段,但只有在手动将某些内容放入该字段后才会更新模型。
这是代码:
<div ng-controller="AddCtrl">
<input type="text" id="demo" ng-model="test.fld" ng-change="change()"></input>
<br />
[ <a href="" onclick="somefnc()">pop</a> ]
[ <a href="" ng-click="add(test)">add</a> ]
<p>Test-field: {{test.fld}}</p>
</div>
<script>
function somefnc() {
document.getElementById("demo").value = "hi";
}
</script>
Run Code Online (Sandbox Code Playgroud)