Angular $watch不会被popup修改过的字段触发
Angular $watch not triggered on field modifed by popup
我有一个Angular 1.4。x应用程序启动一个弹出窗口(为OAuth的东西)。在某些时候,弹出将写入一个值到主父窗口/应用程序的输入字段。这个过程很好。我想是什么,然后有应用程序运行一些代码一旦该字段更新,但似乎当该字段由弹出$watch功能更新是永远不会触发。如果我只是把光标放在字段中并修改值,那么一切都很好。有什么问题吗?
输入字段:
<input type="text" id="url" ng-model="item.url">
控制器表位:
$scope.$watch('item.url', function(n, o) {
console.log(n, o);
});
写给parent的弹出代码:
var url = window.opener.document.getElementById("url").focus();
url.value = "hello";
请注意,我并不真正关心是否使用输入字段-我对其他方法持开放态度。我只需要以一种简单的方式(即一些基本的跨浏览器代码,没有任何库)将值传递回angular应用程序,并从那里开始-这似乎是最直接的方式。
试试这段代码:
var opener = window.opener;
//Replace the 'controller-id' with the id of the controller div
var controllerDiv = opener.document.getElementById('controller-id');
var scope = opener.angular.element(controllerDiv).scope();
scope.title= 'Hello';
//We update the scope manually, so we have to call this
scope.$digest();
相关文章:
- 在Drupal7中扩展字段集时,修改collapse.js以从xml获取附加数据
- 计算html输入字段并允许用户修改所述字段
- 获取剑道网格中已修改字段的列表
- JQuery 修改后的隐藏字段值在回发到服务器时为空
- 手动将脏设置为字段不会修改 css 类 angularJS
- XUL:访问热邮件发件人字段.修改其外观
- 更改其他日期类型字段时,如何修改日期类型字段
- 使用javascript修改select字段中的项目顺序
- 使用jQuery/JS修改字段值中的伪元素
- 使用Java代码修改HTML字段
- Parse.com云功能-在发送到客户端之前手动修改对象字段
- 从子对象修改原型上的字段
- 如何查找被修改的输入字段
- 在Angular.js中修改JSON请求和响应中的字段/属性名
- 如何修改现有的电子邮件CSV脚本以跳过空白行或在任何字段中具有单个零的行
- Sitecore -未检测到已修改的字段.如何强制显示保存提示符
- 如何通过自动刷新获得提交的修改字段
- 修改表单中特定字段的最佳方法是什么
- Angular $watch不会被popup修改过的字段触发
- CRM 2011 JavaScript -修改日期从一个字段和设置到另一个