Angular yeoman spa点击功能未激活

时间:2015-08-23 14:00:38

标签: javascript angularjs yeoman single-page-application

希望这是一个简单的应用程序,仅使用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 而不是这个,为什么功能不起作用?

更新:没有错误,不警报!

1 个答案:

答案 0 :(得分:0)

由于您使用this在控制器中声明方法,因此假设您在controllerAs或路由器中使用ng-controller来定义控制器的别名。

您现在必须在视图中使用此别名对象来引用控制器方法和变量

在不知道您的别名是什么的情况下,我将假设它是vm,现在正被添加到ng-click表达式中:

<li><a ng-href="#/products" ng-click="vm.menuClick()">Products</a></li>