Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 从angular应用程序外部触发angular_Angularjs - Fatal编程技术网

Angularjs 从angular应用程序外部触发angular

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

如何从外部世界触发ngApp内部的事件

这是我当前的代码:

    // 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;也要覆盖所有子作用域。