从angular-app外部触发角度

时间:2014-09-11 10:41:29

标签: angularjs

何从外界触发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()" />

有更好的方法吗?

感谢您的帮助

Larsi

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码访问范围:

var appElement = document.querySelector('[ng-app=appName]');
var appScope = angular.element(appElement).scope();
var controllerScope = appScope.$$childHead;

controllerScope.functionName(在你的情况下,controllerScope.vm.doMyStuffTriggerdFromTheOutsideWorld())

答案 1 :(得分:0)

你需要通过定义输入范围的 yourDivId 获取你的html元素,然后用或不用

调用$ apply
var scope = angular.element($("#yourDivId")).scope();
    scope.$apply(function(){
        scope.something= 'something';
    })