小编sto*_*nau的帖子

如何在AngularJS中测试$ scope.$ on

如何在广播后测试范围是否已填充?我在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)

});

unit-testing jasmine angularjs angularjs-scope

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

如何使用ng-repeat将项目附加到同一行或行

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

angularjs angularjs-ng-repeat

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

为什么输入字段更改不会更新角度模型?

这是一个非常新手的问题,但为什么不呢?

    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)

angularjs

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