Jasmine单元测试:$ compile从ng-repeat中产生注释

Pau*_*aul 7 unit-testing comments jasmine angularjs angularjs-ng-repeat

为什么行

var scope = $rootScope.$new();
dump($compile('<ul><li ng-repeat="item in [1,3,5,7,9]">{{item}}</li></ul>')(scope));
Run Code Online (Sandbox Code Playgroud)

结果是:

'<ul class="ng-scope"><!-- ngRepeat: item in [1,3,5,7,9] --></ul>'
Run Code Online (Sandbox Code Playgroud)

我想看<li>项目而不是评论.

Edu*_*nal 16

你错过digest了一路走来的方法

var e = $compile('<div><ul><li ng-repeat="item in [1,3,5,7,9]">{{item}}</li></ul></div>')(scope);
scope.$digest();
console.log(e.html());
Run Code Online (Sandbox Code Playgroud)

这是我现在得到的输出:

Safari 537.21 (Linux) LOG: '
<ul><!-- ngRepeat: item in [1,3,5,7,9] -->
<li ng-repeat="item in [1,3,5,7,9]" class="ng-scope ng-binding">1</li>
<li ng-repeat="item in [1,3,5,7,9]" class="ng-scope ng-binding">3</li>
<li ng-repeat="item in [1,3,5,7,9]" class="ng-scope ng-binding">5</li>
<li ng-repeat="item in [1,3,5,7,9]" class="ng-scope ng-binding">7</li>
<li ng-repeat="item in [1,3,5,7,9]" class="ng-scope ng-binding">9</li>
</ul>'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,它完成了这项工作!有人写道`$ apply()`更可取; 我尝试过它也有效! (2认同)