当我从jquery中选择值时,Angularjs范围不会更新

时间:2015-04-23 12:23:28

标签: jquery angularjs selenium cucumber

我正在使用cucumber撰写selenium测试。问题是有一个下拉列表,我使用jquery选择其中一个值,但是当我按下它时会出错。

基本上角度没有更新它的范围。

<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>

在同一个黄瓜中,我运行这个jquery代码来选择第三个选项:

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

这将选择第三个选项,但同样,它不会更新角度范围。

我已尝试获取范围对象$apply,但它也无效。

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

1 个答案:

答案 0 :(得分:0)

试试这个:

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