Angularjs 从angular应用程序外部触发angular
如何从外部世界触发ngApp内部的事件 这是我当前的代码:Angularjs 从angular应用程序外部触发angular,angularjs,Angularjs,如何从外部世界触发ngApp内部的事件 这是我当前的代码: // Inside old code console.log("Start Triggering angular"); $('#issueSelectedPid').val(pid); $('#issueSelectedPid').trigger('input'); console.log("Triggering angular"); // inside ngApp <i
// Inside old code
console.log("Start Triggering angular");
$('#issueSelectedPid').val(pid);
$('#issueSelectedPid').trigger('input');
console.log("Triggering angular");
// inside ngApp
<input id="issueSelectedPid" ng-model="vm.selectedPid" ng-change="vm.doMyStuffTriggerdFromTheOutsideWorld()" />
//在旧代码中
log(“开始触发角度”);
$(#issueSelectedPid').val(pid);
$('#issueSelectedPid')。触发器('input');
控制台日志(“触发角度”);
//NGAP内部
有更好的方法吗
谢谢你的帮助
Larsi您需要通过定义输入范围的yourDivId获取html元素,然后调用$apply(有无)
var scope = angular.element($("#yourDivId")).scope();
scope.$apply(function(){
scope.something= 'something';
})
您可以使用以下代码访问范围:
var appElement = document.querySelector('[ng-app=appName]');
var appScope = angular.element(appElement).scope();
var controllerScope = appScope.$$childHead;
controllerScope.functionName(controllerScope.vm.doMyStuffTriggerdFromTheOutsideWorld())感谢您的建议。在本例中,我的ngApp需要了解外部世界,我希望避免这种情况。然后,您可以获得应用ng应用程序的根元素并运行scope。$apply();好主意!我使用控制器作为语法,我发现我甚至可以跳过可怕的$$childHead,改为写:appScope.vm.doMyStuf…:)谢谢。包括$childHead;也要覆盖所有子作用域。