将$ scope添加到控制器

时间:2016-10-07 01:29:48

标签: javascript angularjs model-view-controller

可能是一个愚蠢的问题......但我想做出最好的做法。所以..我有我的控制器:

(function() {
'use strict';

angular
    .module('example.cancha')
    .controller('CanchaController', CanchaController);

CanchaController.$inject = ['$state', 'canchaService'];

function CanchaController($state, canchaService) {
    var vm = angular.extend(this, {
        canchasComplejo: []
        });



    (function activate() {
        cargarCanchasComplejo();
    })();

    //funcion que llama al servicio para obtener las canchas del complejo
    function cargarCanchasComplejo() {
        canchaService.obtenerCanchasComplejo()
            .then(function(canchasComplejo) {
                vm.canchasComplejo = canchasComplejo;
        });
    }
}
})();

现在我需要调用一个函数并使用

进行更改(是一个折叠列表)
   ng-click="toggleGroup(group)"

   ng-class="{active: isGroupShown(group)}".

为此,我需要使用$ scope 如何在我的控制器中集成$ scope?因为我控制器最像是:

.controller('MyCtrl', function($scope) {
    ... 
});

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

你可以像注入 $ state 一样注入$ scope,所以:

CanchaController.$inject = ['$state', '$scope', 'canchaService'];

function CanchaController($state, $scope, canchaService) { ...

答案 1 :(得分:0)

您需要使用$ inject注入$ scope

例如:

(function () {

    angular
        .module('example.cancha')
        .controller('CanchaController', CanchaController);

    CanchaController.$inject = ['$state', 'canchaService','$scope'];
    function CanchaController($state,canchaService,$scope) {
// you can call function here with $scope enter code here
      $scope.xyz = function(){

        }
    }
})();

答案 2 :(得分:-1)

.controller('CanchaController',function($scope,$state, canchaService) {
    var vm = angular.extend(this, {
        canchasComplejo: []
        });

CanchaController.$inject = ['$scope','$state', 'canchaService'];

你可以试试这个