This is my app.js file.

var famboxWebApp = angular.module('famboxWebApp', [ 'ngAnimate', 'ngCookies', 'ngResource', 'ngRoute', 'ngSanitize', 'ngTouch', 'pascalprecht.translate', // angular-translate 'tmh.dynamicLocale',// angular-dynamic-locale 'ui.bootstrap' ]) .constant('LOCALES', { 'locales': { 'hy_AM': 'Armenia', 'ru_RU': 'Russian', 'en_US': 'English' }, 'preferredLocale': 'en_US' }) .config(function ($routeProvider, $locationProvider) { $routeProvider .when('/:language', { templateUrl:'views/main.html', controller: 'MainCtrl', controllerAs: 'main' }) ---------------- }) 

This is the main.js file.

 angular.module('famboxWebApp') .controller('MainCtrl', function ($http, $scope, $routeParams,$rootScope) { $scope.commonUrl = COMMON_URL; $rootScope.$watch('CURRENT_LANGUAGE', function() { $scope.currentLang = $rootScope.CURRENT_LANGUAGE; }); $scope.homePageFirstSlider = function () { $http({ method: 'GET', url: COMMON_URL + CURRENT_LANGUAGE + '/api/getslideritems/main' }).then(function successCallback(response) { $scope.Data = response.data; $scope.loadCss('mainCarousel'); }, function errorCallback(response) { // location.href = "404.html"; }); }; $scope.homePageFirstSlider(); }); 

This is a Karma / Jasmine test.

 describe('test Angular JS project', function() { beforeEach(module('famboxWebApp')); beforeEach(module('ngAnimate')); beforeEach(module('ngCookies')); beforeEach(module('ngResource')); beforeEach(module('ngRoute')); beforeEach(module('ngSanitize')); beforeEach(module('ngTouch')); beforeEach(module('pascalprecht.translate')); beforeEach(module('tmh.dynamicLocale')); beforeEach(module('ui.bootstrap')); var scope; var controller; var httpBackend; beforeEach(module(function ( $translateProvider) { $translateProvider.useLoader(); })); beforeEach(inject(function ( $rootScope, $controller, _$httpBackend_) { scope = $rootScope.$new(); httpBackend = _$httpBackend_; var controller = $controller('MainCtrl', { $scope:scope //$routeParams: {} }); })); it("test getslideritems", inject(function ($httpBackend) { var jsonlist = [{"id":"1","link":"..\/Smart#Smart","uri":"pesacun-krkesic","time":null,"year":"2011","image":"slide1.png","videoName":"The Fianc\u00e9 from Circus","genre":["Comedy"],"country":["Armenia"],"countryImage":["AM.png"]},{"id":"52","link":"vana-tsovun-arshaluysy","uri":"vana-tsovun-arshaluysy","time":"93 min.","year":"2011","image":"slide5.png","videoName":"Sunrise over Lake Van","genre":["Melodrama"],"country":["Armenia"],"countryImage":["AM.png"]},{"id":"61","link":"yerankyuni","uri":"yerankyuni","time":"84 min.","year":"1967","image":"yerankyuni.png","videoName":"\u0422riangle","genre":["Historic "],"country":["Armenia"],"countryImage":["AM.png"]},{"id":"58","link":"arajin-siro-ergy","uri":"arajin-siro-ergy","time":"109 min.","year":"1958","image":"arajin-siro-ergy.png","videoName":"The song of the first love","genre":["Melodrama"],"country":["Armenia"],"countryImage":["AM.png"]}]; $httpBackend.whenGET('views/main.html').respond(); $httpBackend.whenGET(COMMON_URL + CURRENT_LANGUAGE + '/api/getslideritems/main').respond(200, jsonlist); $httpBackend.expectGET('/eng/api/getslideritems/main'); var json = [[{"id":"81","videoType":"musics","videoTypeName":"musics","rating":"{\"kinopoisk_rating\":\"0\",\"imdb_rating\":\"0\"}","fambox_rating":"0","uri":"tigran-petrosyan-um","year":"2012","content":"Music: Hayko, lyrics by: Vardan Zadoyan, producer: Artyom Hakobyan, Mihran Stepanyan, information sponsor : \"Day TV\"","videoName":"Tigran Petrosyan \"Whom\"","price":"0","serialId":"0","watchList":false,"seasonId":"0","serial_number":"0","genre":["HIP-HOP"],"countryName":["Armenia"],"video_main":["Tigran_Petrosyan_um.png"],"country_image":["AM.png"]},{"id":"82","videoType":"musics","videoTypeName":"musics","rating":"{\"kinopoisk_rating\":\"0\",\"imdb_rating\":\"0\"}","fambox_rating":"0","uri":"tigran-petrosyan-kgam","year":"2012","content":"Music: Hayko, lyrics by: Vardan Zadoyan, producer: Nur, information sponsor : \"Day TV\".","videoName":"Tigran Petrosyan \"I will come\"","price":"0","serialId":"0","watchList":false,"seasonId":"0","serial_number":"0","genre":["HIP-HOP"],"countryName":["Armenia"],"video_main":["Tigran_Petrosyan_kgam.png"],"country_image":["AM.png"]}],2]; $httpBackend.whenGET(COMMON_URL + CURRENT_LANGUAGE + '/api/home/musics/main/0/8').respond(200, json); $httpBackend.expectGET('/eng/api/home/musics/main/0/8'); $httpBackend.flush(); scope.name; scope.homePageFirstSlider(); expect(scope.Data).not.toEqual([]); console.log(scope.Data); console.log(scope.DataTvMusic); })); }); 

Mistake:

TypeError: $ scope.loadCss is not a function at successCallback (/var/www/html/famboxv2/public/scripts/controllers/main.js:28:28) at processQueue (/ var / www / html / famboxv2 / public / bower_components / angular / angular.js: 15552: 28) at /var/www/html/famboxv2/public/bower_components/angular / triangular.js:15568:27 at Scope. $ eval (/ var / www / html / famboxv2 / public / bower_components / angular / angular.js: 16820: 28) at Scope. $ digest (/var/www/html/famboxv2/public/bower_components/angular/angular.js:16636:31) at Scope. $ apply (/ var / www / html / famboxv2 / public / bower_components / angular / angular.js: 16928: 24) at done (/var/www/html/famboxv2/public/bower_components/angular/angular.angular.js:11266:47) at handleResponse (/var/www/html/famboxv2/public/bower_components/angular-mocks/angular-mocks.js:1352:9) at Function. $ httpBackend.flush (/ var / www / html / famboxv2 / public / bower_components / angular -mocks / angular-mocks.js: 1788: 26) at Object. (tests / getslideritems-main.js: 110: 15) Error: Declaration: at window.inject.angular.mock.inject (/var/www/html/famboxv2/public/bower_components/angular-mocks/angular-mocks.js : 2778: 25) at Suite. (tests / getslideritems-main.js: 100: 28) at tests / getslideritems-main.js: 71: 1 PhantomJS 2.1.1 (Linux 0.0.0): Executed 0 of 1 SUCCESS (0 secs / 0 secs) PhantomJS 2.1 .1 (Linux 0.0.0): Executed 0 of 1 SUCCESS (0 secs / 0 secs)

When the next line is closed in mian.js, $ scope.loadCss ('mainCarousel'); then everything works for me, I get json and can compare. What is the problem?

karma.conf.js file

 module.exports = function(config) { config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['jasmine'], // list of files / patterns to load in the browser files: [ '../../public/bower_components/angular/angular.js', '../../public/bower_components/angular-i18n/angular-locale_aa.js' , '../../public/bower_components/angular-route/angular-route.js', '../../public/bower_components/angular-mocks/angular-mocks.js', '../../public/bower_components/jquery/dist/jquery.js', '../../public/bower_components/bootstrap/dist/js/bootstrap.js', '../../public/bower_components/angular-animate/angular-animate.js', '../../public/bower_components/angular-bootstrap/ui-bootstrap.js', '../../public/bower_components/angular-cookies/angular-cookies.js', '../../public/bower_components/angular-dynamic-locale/src/tmhDynamicLocale.js', '../../public/bower_components/angular-messages/angular-messages.js', '../../public/bower_components/angular-messages/angular-messages.js', '../../public/bower_components/angular-resource/angular-resource.js', '../../public/bower_components/angular-sanitize/angular-sanitize.js', '../../public/bower_components/angular-touch/angular-touch.js', '../../public/bower_components/angular-translate/angular-translate.js', '../../public/bower_components/angular-touch/angular-translate-loader-static-files.js' , '../../public/bower_components/angular-translate-handler-log/angular-translate-handler-log.js' , '../../public/bower_components/angular-translate-loader-static-files/angular-touch.js' , '../../public/bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.js' , '../../public/bower_components/angular-translate-storage-local/angular-translate-storage-local.js' , '../../public/bower_components/angular-translate-storage-local/angular-translate-storage-local.min.js' , '/node_modules/angular-translate-loader-pluggable/dist/angular-translate-loader-pluggable.js', '/node_modules/angular-translate-loader-pluggable/dist/angular-translate-loader-pluggable.min.js', '/node_modules/angular-translate-loader-pluggable/dist/angular-translate-loader-pluggable.min.js.map', '../../public/scripts/app.js', '../../public/scripts/controllers/main.js', 'tests/getslideritems-main.js' ], // list of files to exclude exclude: [ ], // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { }, // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ['progress'], // web server port port: 9876, // enable / disable colors in the output (reporters and logs) colors: true, // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, // enable / disable watching file and executing tests whenever any file changes autoWatch: true, // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher browsers: ['Chrome', 'PhantomJS'], // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits singleRun: false, // Concurrency level // how many browser should be started simultaneous concurrency: Infinity }) } 

    1 answer 1

    Judging by the code, your $ scope has no idea what loadCss () is. You may have forgotten or connected to a service / module, or the function does not interact with the $ scope inside the controller at all. Unfortunately, I can’t tell more. it is unclear what this function is and where it is declared at your place.

    • $ scope has no idea what loadCss () is , do you have to type it in main.js ?? If it helps, I added the karma.conf.js file. - Narine Grigoryan
    • best of all, use the search by your code and find out if you have this loadCss () method at all? And add its code and announcement to the question. Unfortunately conf.js did not help = ( - alexoander
    • You helped thank a lot. I found the loadCss () function added to the test, and $ scope already sees loadCss (). ))))) - Narine Grigoryan
    • Glad to help =) It turns out that the module with this function was simply not connected? - alexoander
    • Well, yes it turns out))))) - Narine Grigoryan