ng-repeat不在测试代码中编译

时间:2016-09-14 04:50:12

标签: angularjs

我试图在茉莉花测试中编译一个指令,并且我发现我的模板中的ng-repeat中的任何内容都没有在DOM中呈现,无论数据是什么一切都存在,其他元素正在通过。例如(请注意,该指令没有任何问题,因为它在应用程序中使用了它,为了简洁起见,我已经简化并省略了不相关的代码):

指令模板:

<job-form>
    <input name="Name" ng-model="job.Name">
    <md-list>
        <md-list-item ng-repeat="item in job.items">{{item.Name}}</md-list-item>
    </md-list>
</job-form>

测试代码段,注释:

$scope.myJob = {
    Name: 'My Name', 
    items: [{Name: 'item1'},{Name: 'item2'}]
};
var compiled = $compile('<job-form job="myJob"></job-form>')($scope);
var view = compiled[0];

$scope.$digest();    
var scope = compiled.isolateScope();

document.body.appendChild(view);

//Jasmine tests:
expect(document.querySelector('[name="Name"]').value).toBe('My Name'); 
    // --> pass!

expect(document.querySelectorAll('md-list-item').length).toBe(2);
    // --> fail.  (was 0)

console.log(document.querySelectorAll('md-list-item'));
    // --> Object{length:0}    <-- WHAT GIVES?

所以我可以在编译视图中找到除<md-list-item>以外的所有预期元素,即使驱动ng-repeat的数据明确附加到scope。这是为什么?我需要做些什么来渲染重复的项目?

0 个答案:

没有答案