Angularjs 当我 select 来自 jquery 的值时范围未更新

Angularjs scope not updating when I select the value from jquery

我正在用 selenium 编写 cucumber 测试。问题是有一个下拉菜单,我 select 其中一个值使用 jquery,但是当我按下下一步时它给出错误。

基本上angular还没有更新它的范围。

<select name="837" id="answer_837" class="donothing_to_my_select ng-scope ng-pristine ng-invalid ng-invalid-required" ng-model="answers[question.question_id]" ng-options="obj.possible_answer_id as obj.answer for obj in question.possible_answers" required="">
    <option class="" value="">--Select Option--</option>
    <option label="b" value="0">b</option>
    <option label="d" value="1">d</option>
    <option label="c" value="2">c</option>
    <option label="a" value="3">a</option>
</select>

在同一个黄瓜中,场景 I 运行 这个 jquery 代码到 select 第三个选项:

$('#answer_837 option[label=c]').prop('selected',true)

这将 select 第三个选项,但是,同样,它不会更新 angular 范围。

然后我尝试获取范围对象 $apply,但它也不起作用。

 var newVal = $('#answer_837 option[label=c]').val();
 var scope = angular.element($("select")).scope();
    scope.$apply(function(){
        scope.answers[837] = newVal;
    });

试试这个:

$('#answer_837').prop('value',2);
$('#answer_837').trigger('change');