在我的子控制器中,我使用$ scope从其父级调用一个函数。一切正常,但当我运行gulp服务时,我得到一个ESLint错误
您不应在控制器中设置$ scope的属性。使用 controllerAs语法并将数据添加到“this”
所以我的问题是如何以正确的方式处理这个问题?
以下是我详细解释的内容:
我在Angular项目中使用UIRouter。我已经声明了父状态及其子状态。
$stateProvider.state('app.parent', {
url: '/parent',
temolateUrl: 'parent.html',
contorller: 'MyParentController as parentCtrl'
}
$stateProvider.state('app.parent.child', {
url: '/child',
temolateUrl: 'child.html',
contorller: 'MyChildController as childCtl'
}
在我的父控制器中,我将我的函数添加到$ scope,以便可以从state的子节点访问该函数。
function MyParentController() {
$scope.myParentFunction = myParentFunction;
function myParentFunction(){
//do something
}
}
在我的孩子状态(控制器)中,我调用此功能。
function MyChildController(){
...
$scope.myParentFunction();
...
}
一切正常但是当我运行gulp服务时,我得到一个ESLint错误
您不应在控制器中设置$ scope的属性。使用 controllerAs语法并将数据添加到“this”
所以我的问题是如何以正确的方式处理这个问题。
答案 0 :(得分:0)
你应该使用controllerAs语法
https://toddmotto.com/digging-into-angulars-controller-as-syntax/
function MyChildController($scope){
var vm = this;
vm.scope = $scope;
vm.scope.myParentFunction();
}