【发布时间】:2018-03-21 05:15:14
【问题描述】:
我在 gulp 中使用 browserify 和 babelify 使用 es6 和 angular 1.6 进行测试,我注意到当我使用 es6 类创建控制器时,我不能再使用 ng-click 在 dom 上调用控制器的方法。
控制者:
export default class FocusbtnsController {
constructor($scope) {}
testMethod() {
alert('test method works!!');
}
}
主模块:
import angular from 'angular';
import FocusbtnsController from './focusbtns.controller';
export default angular.module('shapesite', [])
.controller('FocusbtnsController', FocusbtnsController);
HTML:
<div class="center-btns ng-scope" ng-controller="FocusbtnsController">
<div class="focus-btn-container" style="left:50%;top:5%" ng-click="testMethod()">
<div class="diamond">
<div class="diamond-btn"></div>
</div>
</div>
</div>
我尝试从angular.module 中删除export default,但没有任何效果。
当我将方法 testMethod 添加到 $scope 参数 $scope.testMethod = testMethod; 时,它可以工作,但这样做感觉非常肮脏。
我错过了一些允许我在使用 es6 语法时调用控制器方法而无需将其分配给 $scope 的东西?
【问题讨论】:
-
如果你要使用 1.5+,我建议你使用组件,它允许你在组件定义中为视图声明控制器,你可以使用
$ctrl调用它的方法。
标签: javascript angularjs ecmascript-6 es6-class angular-controller