input有个ng-model绑定,手动输入能改变这个值,我用jquery改变了一个input的值$('#dd').val('str');然后scope的model不变求救
2 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
如果使用angularway修改更新DOM或者变量的值的话,不需要进行额外操作.但是如果脱离了angular,使用类似于jquery这样,不在angular的体系内的代码的话,你进行了修改需要通知angular,让angular获取最新的值,以反映到页面中.所以你可以使用下面的方法,通知angular$scope.$apply(function(){jQuery('input').val(newValue);})
梦里花落0921
TA贡献1772条经验 获得超6个赞
正确的方法是……不要手动去改view。提议:1、试着把model暴露出来,然后去修改model吧,改完之后调用$scope.$apply()。另外,为了避免各种不可预期的错误,你可以这样写setTimeout(function(){$scope.$apply()},0)。2、无论如何,你有这种需求,肯定是因为发生了什么事件,用户操作或者是ajax之类的。ajax操作可以用Angular提供的$http服务,用户操作呢,则通常都可以封装到directive里面。
添加回答
举报
0/150
提交
取消