我有这样的输入:
<input ng-model="mysearch.myfield" id="myid"/>
绑定到过滤器
<table><tr ng-repeat="row in list|filter:mysearch">...</tr></table>
如果我在GUI中修改输入值,它可以很好地工作,但如果我尝试通过javascript / jquery修改其值
$("#myid").val("newvalue")
输入值已更新但mysearch.myfield未修改
实际上,我有一个列在用户操作上的列表(在页面加载时不存在):
<li onclick="changeTheInputValue('newvalue1')">newvalue1</li>
<li onclick="changeTheInputValue('newvalue2')">newvalue2</li>
...
与
function changeTheInputValue(v) {
$("#myid").val(v);
}
当我点击&#34; li&#34;它不起作用。 (更新输入值,不修改mysearch.myfield)
我也试过
<li ng-click="mysearch.myfield = 'newvalue1'">newvalue1</li>
<li ng-click="mysearch.myfield = 'newvalue2'">newvalue2</li>
...
但它不起作用:( 有什么想法吗?
谢谢,
答案 0 :(得分:0)
任何在angulars事件循环之外执行的javascript在角色中都是有效的,直到你应用它为止。为了做到这一点,你需要获得相关的范围和$应用更改,因为不清楚,如何以及为什么你修改角度范围之外的值没有什么我可以说除了你可以做类似的事情
function changeTheInputValue(v) {
$("#myid").val(v);
angular.element($("#myid")).scope().$apply();
}
应该让角度知道变化,如果使用角度,这是一个糟糕的设计。有更好的方法来完成同样的事情,没有混合执行范围。 (角/其余);
答案 1 :(得分:0)