我知道这样做是有违背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事件
叮当猫咪
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,强烈不推荐
添加回答
举报
0/150
提交
取消