如何在Angularjs中调用Javascript函数
这里我得到一个错误,因为未定义如何在Angularjs中调用Javascript函数,javascript,angularjs,Javascript,Angularjs,这里我得到一个错误,因为未定义myFunction(): app.controller('myctrl',function(){ myFunction(); }); function myFunction() { debugger; document.getElementById("abc").disabled = false; } 这里的myFunction是onclick=“myFunction()”,但我试图在我的函数中调用它 我犯了什么错误?请帮帮我这是个问题
myFunction()
:
app.controller('myctrl',function(){
myFunction();
});
function myFunction() {
debugger;
document.getElementById("abc").disabled = false;
}
这里的myFunction
是onclick=“myFunction()”
,但我试图在我的函数中调用它我犯了什么错误?请帮帮我这是个问题 如果您想使用html中的函数,您必须通过添加$scope将函数链接到控制器的作用域。到我的函数,所以你得到
app.controller('myctrl', ['$scope', function() {
$scope.myFunction();
}]);
function myFunction() {
debugger;
document.getElementById("abc").disabled = false;
}
此外,如果您的函数任务是使元素noy禁用,您可以使用ng disabled,我使用ng disabled创建了一个函数,您不应该在角度控制器之外定义函数。当您这样做时,您将丢失角度上下文,因为angular不知道它发生了。您将开始看到一些怪事,例如双向数据绑定问题以及其他问题 其次,您需要将
$scope
模块导入控制器
,以便在其上定义函数。有其他方法可以做到这一点,但这是最常见的
显示警报
const dontdothis=()=>{
警报(“功能应在角度控制器内”);
};
常量app=angular.module('myApp',[]);
app.controller('myCtrl',($scope)=>{
不要这样做();
$scope.alertreach=()=>{
警报(“这又是警报”);
};
});
请分享完整准确的错误信息message@NicoHaase这里我在onclick=myFunction()中调用myFunction“当我点击按钮时,它正在工作,但当我调用函数时,它正在调用但不工作,请在问题中添加完整准确的错误消息。我认为这是一个范围界定的问题,我还建议您提供一个。您显示的代码本身似乎没有错误。您需要将
$scope
导入到函数中<代码>$scope在您的答案中未定义。这在你的plunker上是正确的。事实上,编辑了我的答案,所以现在$scope被导入了。谢谢
<div ng-app="myApp" ng-controller="myCtrl">
<button ng-click="alertAgain()">
Show an alert
</button>
</div>
const dontdothis = () => {
alert('function should be within the angular controller');
};
const app = angular.module('myApp', []);
app.controller('myCtrl', ($scope) => {
dontdothis();
$scope.alertAgain = () => {
alert('this is an alert again');
};
});