【问题标题】:unable to access the controller in jasmine无法访问 jasmine 中的控制器
【发布时间】:2018-08-05 18:14:15
【问题描述】:

angularjs && Typescript 控制器


   module app.controller {
   class MainCtrl {
   static $inject = ['$scope', '$rootScope', '$interval', '$http', 'unityService',
   'adalAuthenticationService', '$location', '$window', 'analyticsService', 'homePageSetting',
   'unityCommonService', '$timeout', '$cookies', '$routeParams', '$compile', '$filter'];
   }
   constructor(
   private $scope,
   private $rootScope,
   private $interval,
   private $http,
   private unityService: app.services.unityService,
   private adalAuthenticationService,
   private $location,
   private $window,
   private analyticsService,
   private homePageSetting,
   private unityCommonService,
   private $timeout,
   private $cookies,
   private $routeParams,
   private $compile,
   private $filter

       ) { }
   angular.module('UnityApp').controller('MainCtrl', MainCtrl);
   }

   Jasmine Test For Controller

   beforeEach(function () { angular.module("UnityApp") });

   it("should make a string more exciting", inject(function ($controller, $rootScope) {
   var controller =
   $controller('MainCtrl', {
   $scope: $rootScope.$new(), // scope 
   });
    //controller got undefined error when i access the controller ?? i tried many ways but i m unable to get the controller 
   }));

我无法访问 MainCtrl 中的范围


【问题讨论】:

  • 我在打字稿中使用模块级实现。它区分茉莉花中实例化控制器的常规实现吗??

标签: angularjs typescript text jasmine


【解决方案1】:

您要做的是在初始化控制器之前创建范围并将其分配给局部变量。

it("should make a string more exciting", inject(function ($controller, $rootScope) {

  var $myScope = $rootScope.$new();

  $controller('MainCtrl', {
    $scope: $myScope
  });

}));

然后您就可以访问 $myScope 中的控制器范围了。

【讨论】:

  • 还是不行。 $controller is not a function 出现未定义错误
猜你喜欢
  • 1970-01-01
  • 2016-04-16
  • 2016-06-12
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 2016-12-11
  • 2017-11-10
  • 2016-01-24
相关资源
最近更新 更多