【发布时间】:2014-05-11 14:01:22
【问题描述】:
我的情况如下:
指令
scope: { foo:'=' },
template: '<input type="checkbox" ng-model="foo"/>'
父控制器
$scope.foo = false;
茉莉花测试
var cb = iElement.find('input');
$timeout(function() { // using $timeout to ensure $digest() isn't the issue.
cb.prop('checked',!cb.prop('checked'))
},0);
expect(cb.prop('checked')).toBe(true); // passes
expect($scope.foo).toBe(true); // doesn't pass
我的问题:为什么在我发出 prop('checked') 时 $scope.foo 没有得到更新,即使 DOM 更新了(正如我在检查后验证的那样)。
这里是一个jsbin,大致演示了问题http://jsbin.com/kapifezi/2/edit
【问题讨论】:
-
以不同的方式询问 - 测试 ng-model 链接到其父控制器中的变量的复选框(位于指令中)的正确方法是什么?
标签: javascript angularjs checkbox jasmine karma-runner