Angularjs ngClick函数使用'不起作用;控制器组件';方法,而不是$scope
刚刚开始使用angular,并努力让ngClick运行 我的堆栈溢出了大多数潜在的解决方案,但都提到必须使用$scope才能使ngClick正常工作 但是,我知道,只要您所在的页面已为其分配了正确的控制器(“控制器as”方法),并且只要您的功能在该控制器内,它就应该工作,您就不需要此方法 然而,我正在努力让我的代码启动-没有错误回来,所以我可以调试 以下是我的设置:Angularjs ngClick函数使用'不起作用;控制器组件';方法,而不是$scope,angularjs,Angularjs,刚刚开始使用angular,并努力让ngClick运行 我的堆栈溢出了大多数潜在的解决方案,但都提到必须使用$scope才能使ngClick正常工作 但是,我知道,只要您所在的页面已为其分配了正确的控制器(“控制器as”方法),并且只要您的功能在该控制器内,它就应该工作,您就不需要此方法 然而,我正在努力让我的代码启动-没有错误回来,所以我可以调试 以下是我的设置: Angular version: 1.6.4 路由器.js state(‘exampleShow', { templateU
Angular version: 1.6.4
路由器.js
state(‘exampleShow', {
templateUrl: '/templates/example.html',
controller: ‘exampleShowController as exampleShow'
})
controllers.js
exampleShowController.$inject = [‘Example’, '$state', 'User'];
function exampleShowController(Example, $state, User) {
const exampleShow = this;
function addExample() {
console.log('click');
}
}
example.html
<button ng-click="addExample()" class="u-full-width button-primary">Add
example</button>
添加
例子
我知道我错过了一个新手的失误,但我真的无法发现我错过了什么
谢谢你提供的任何信息
K您没有在控制器中注入
$scope
。如果您想在模板中使用ng click函数,它应该是作用域的一部分,因为您使用的是controller as
语法,所以您需要将控制器函数绑定到这个,并且您还必须在html
中通过别名调用它,比如:ng click=“exampleShow.addExample()”
演示:
var myApp=angular.module('myApp',[]);
myApp.controller(“ExampleShowController”,ExampleShowController);
示例ShowController.$inject=[];
函数示例ShowController(){
const exampleShow=这个;
exampleShow.addExample=函数(){
console.log('click');
}
}
添加示例
试试ng click=“exampleShow.addExample()”
嘿,伙计,谢谢你这么好的回答,不用使用$scope也很容易理解!真不敢相信我错过了,但我做得很好——一切都很好!