从第三方原始javascript控制Angular JS元素
Control Angular JS element from a thirdparty raw javascript
这是我第一次使用Angular JS构建的网站。我编写了第三方营销javascript标签,商家将其作为HTML中的最后一个元素加载到他们的网站上。JS标签只是在商家网站上查找元素,并获取数据或控制折扣代码表单
本质上,我希望我的外部加载JS标签能够自动设置折扣码输入字段的值,并触发点击表单旁边的按钮。这是商家网页上折扣码元素的HTML:
<div ng-if="BasketViewModel.ShowDiscountBox == true" class="ng-scope">
<input class="form-control ng-pristine ng-invalid ng-invalid-required ng-touched" id="discountcode" ng-model="BasketViewModel.DiscountCode" type="text" ng-enter="applyDiscount(BasketViewModel.DiscountCode)" required="">
<button id="addcode" class="btn btn-default ng-binding" type="button" ng-click="applyDiscount(BasketViewModel.DiscountCode)">Go!</button>
</div>
在我的javascript中,我有;
document.getElementById('discountcode').value = '10OFF';
document.getElementById('addcode').click();
值"10OFF"似乎没有传递给按钮单击的处理程序。尽管如此,提交代码的Ajax请求(我不可见)还是将"null"作为输入值传递。
有没有一种方法可以通过编程方式输入代码,并在Angular JS之外由用户自己提交?
请帮忙——我是一名后端开发人员,对Angular一无所知,但我需要解决这个问题,让客户加入进来。
IMHO考虑到Angular/Non-Angular互操作的复杂性以及使用不同版本的Angular进行互操作的挑战,您正在进行一场失败的战斗。无论如何,请仔细阅读以下讨论:
https://stackoverflow.com/a/10508731/559095
即使你可以在低于1.3的angular版本中调用angular.element(document.getElementById…)并获得它的scope(),商家也需要启用angular调试,而且他们可能没有在生产中启用它。
即使它现在有效,当他们升级到Angular>=1.3时会发生什么?
相关文章:
- Angular JS IE9 Hashbang url rewriting
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- angular.js没有'无法在PhoneGap中处理视图标记
- Angular js-返回一个包含类似
- 如何使用 Angular JS 将数据保存在数据库中
- 将Angular js与taglib结合使用
- Angular JS Filter-通过3个复选框进行筛选
- vaadin:使用自定义布局集成angular js
- angular js密码强度显示问题
- 使用angular.js问题的JavaSpringREST服务
- 将复杂对象从angular js传递到web api,它总是返回404
- entre上的angular js阻止提交
- 根据Angular.JS上一次的内容禁用选择
- 如何在angular js中使用指令.不适用于我的情况,为什么
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- angular.js:13424错误:[ng:areq]参数'fn'不是函数,getObject
- 使用Angular js-量角器e2e测试上传文件
- Angular.js延迟控制器初始化
- 如何在angular.js中动态应用自定义过滤器
- 谷歌地图/Angular JS:地图更新并不总是反映数据,并且可以't删除标记