jQuery设置input value Angularjs controller 无法获取

我知道这样做是有违背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();
Helenr
浏览 429回答 2
2回答

繁星淼淼

只需要给input修改后,再用JQ添加个事件就行了$("#cert_valid_from").val(date1).trigger('change');主要是trigger模拟触发change事件

叮当猫咪

参考代码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,强烈不推荐
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript