gpt4 book ai didi

javascript - AngularJs : Call controller function bound to 'this' from outside(eg. 浏览器控制台)

转载 作者:行者123 更新时间:2023-12-03 04:41:03 25 4
gpt4 key购买 nike

我有以下代码,现在假设我想从外部某个地方调用 foo(val) 函数,比如说浏览器控制台。

angular.module('app', []);
angular.module('app')
.controller('MyController', MyController);

function MyController() {
var self = this;
self.foo = function(val) {
console.log(val);
};
return self;
}

下面的代码仅在 foo() 绑定(bind)到 $scope 时有效。

angular.element(document.getElementById('MyController')).scope().foo('Hello');

有什么解决办法吗?否则我将被迫使用 $scope 来实现此目的?

最佳答案

当使用“controllerAs”语法实例化 Controller 时,this 上下文将绑定(bind)到具有指定名称的范围属性:

<div id="MyController" ng-controller="MyController as vm">
<button ng-click="vm.foo()">
Click foo
</button>
</div>
$scope = angular.element(document.getElementById('MyController')).scope()

$scope.vm.foo('Hello');
$scope.$apply();

从控制台执行的上述命令将执行与单击 Click foo 按钮相同的操作。

关于javascript - AngularJs : Call controller function bound to 'this' from outside(eg. 浏览器控制台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com