为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery设置input value Angularjs controller 无法获取

jQuery设置input value Angularjs controller 无法获取

Helenr 2019-04-13 08:46:33
我知道这样做是有违背Angularjs规定的写法的。先说说场景吧。用户在A页面点击“新增”按钮,window.open出一个B页面,在B页面填完信息后,点击保存,想要回显到A页面。然后连同A页面一些信息进行提交到controller.因为刚接触Angularjs,所以还是以页面Bopener.document.getElementById设置父页面(A页面隐藏的input值)。但是却出现页面上inputview是改变了,但是实际的model根本没有变化,controller中取到的值都是undefined;想请教下1.如果这样的写法,应该怎么操作才能使得controller中可以取到隐藏的B页面回传的input的值。2.如果遵循Angularjs写法,应该怎么变化?附A页面:新增保存A.js:$scope.add=function(){varopenCustomer=window.open('B.html');};$scope.save=function(){console.log('save'+$scope.abv);};页面B:this.opener.document.getElementById("abv").value=document.getElementById("a").value;this.opener.document.getElementById("save").click();
查看完整描述

2 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

只需要给input修改后,再用JQ添加个事件就行了
$("#cert_valid_from").val(date1).trigger('change');
主要是trigger模拟触发change事件
                            
查看完整回答
反对 回复 2019-04-13
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

参考代码
A.js:
$scope.add=function(){
varopenCustomer=window.open('B.html');
};
//这里不用$scope而用window是为了在B页面调用
window.save=function(value){
$scope.abv=value;
alert($scope.abv);
};
B页面
//这里直接调用刚才A.js声明的save方法,然后把B页面的值传进去
opener.save(document.getElementById('a').value);
window.close();
现在A.js里就alert出来你需要的$scope.abv了。
但仍然要注意的是,这种做法完全是workaround,强烈不推荐
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 428 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信