希望这是一个简单的应用程序,仅使用yo角度生成器构建 HTML(指数)
<li ng-click="menuClick()" class="active"><a href="#/">Home</a></li>
<li><a ng-href="#/about" ng-click="menuClick()" >About</a></li>
<li><a ng-href="#/">Contact</a></li>
app.js(config)
angular
.module('testAngualrApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
controllerAs: 'main'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl',
controllerAs: 'about'
})
.otherwise({
redirectTo: '/'
});
});
JS(主要)
angular.module('testAngualrApp')
.controller('MainCtrl', function ($scope) {
this.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
$scope.menuClick = function () {
alert("yo");
};
});
编辑$ scope未导出,不再使$ scope未定义。
上面的点击事件没有触发,我在ng-href之前尝试过ng-click,以防首先重定向页面,我也尝试使用 $ scope 而不是这个,为什么功能不起作用?
更新:没有错误,不警报!
答案 0 :(得分:0)
由于您使用this
在控制器中声明方法,因此假设您在controllerAs
或路由器中使用ng-controller
来定义控制器的别名。
您现在必须在视图中使用此别名对象来引用控制器方法和变量
在不知道您的别名是什么的情况下,我将假设它是vm
,现在正被添加到ng-click
表达式中:
<li><a ng-href="#/products" ng-click="vm.menuClick()">Products</a></li>