我正在尝试使用jasmine在自定义指令中测试双向绑定。
这是js:
<div ng-app="MyServiceModule" ng-controller="MyController as MyCtrl" >
<train-directive trains="MyCtrl.trainList"> </train-directive>
</div>
这是html:
describe('my directive', function(){
beforeEach(module('MyServiceModule'));
beforeEach(function(){
element=angular.element('<train-directive trains="MyCtrl.trainList"> </train-directive>');
compiledElement = $compile(element)(scope);
scope.$digest();
});
});
it('should test two-way data binding',function(){
element.isolateScope().trains = "My trains";
//Now I want to test if the same value is reflected in the parent scope's trainList variable.
expect(scope.trainList).toEqual('My trains');
});
如何在下面的测试中编写测试双向数据绑定:
$(document).ready(function() {
$('button').click(function() {
$('.sub-nav').toggleClass('visible');
});
});
我在这里做错了什么?任何人都可以解释我如何纠正它?
答案 0 :(得分:0)
绑定不会神奇地更新,它们会在摘要上更新。 MyCtrl.trainList
应更改为trainList
,因为scope
不属于具有controllerAs语法的真实控制器,并且没有MyCtrl
对象。
应该是
element.isolateScope().trains = "My trains";
scope.$digest();
...