从第三方原始javascript控制Angular JS元素

从第三方原始javascript控制Angular JS元素,javascript,angularjs,Javascript,Angularjs,这是我第一次使用内置Angular JS的站点。我编写了第三方营销javascript标记,商家将其作为HTML中的最后一个元素加载到他们的网站上。JS标签只是在商家网站上查找元素,获取数据或控制折扣代码表单 本质上,我希望外部加载的JS标记能够自动设置折扣代码输入字段的值,并触发单击表单旁边的按钮。这是商户网页上折扣代码元素的HTML: <div ng-if="BasketViewModel.ShowDiscountBox == true" class="ng-scope">

这是我第一次使用内置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>
似乎没有将值“10OFF”传递给按钮单击的处理程序。提交代码的Ajax请求(我看不见)将“null”作为输入值传递,尽管如此

是否有一种方法可以以编程方式输入代码并代表Angular JS之外的用户提交


请帮助-我是一个后端开发人员,不知道Angular,但我需要解决这个问题,让客户加入

鉴于角度/非角度互操作的复杂性以及使用不同版本的Angular进行互操作所面临的挑战,我认为您正在进行一场失败的战斗。无论如何,请仔细阅读本讨论:

即使您可以在低于1.3的angular版本中调用angular.element(document.getElementById…)并获取其scope(),angular调试仍需要由商家启用,并且他们可能尚未在生产中启用它

即使它现在可以工作,当它们升级到Angular>=1.3时会发生什么

document.getElementById('discountcode').value = '10OFF';
document.getElementById('addcode').click();