我正在玩https://github.com/angular/angular-seed
控制器在app / controllers.js中定义,如此
'use strict';
function MyCtrl1() {}
MyCtrl1.$inject = [];
这不会传递jshint,因为在app / app.js中引用了MyCtrl1,而不是在我的全局列表中。
根据Brian Ford和其他人的说法,我读过首选的风格是
angular.module('myApp').controller('MyCtrl1', [], function () {});
我更喜欢这个,因为它不在全球范围内,但现在我的测试规范失败了,因为这不再适用了:
var myCtrl1;
beforeEach(function(){
myCtrl1 = new MyCtrl1();
});
如何获得对此控制器的引用,该控制器以“首选”样式定义以进行测试?
答案 0 :(得分:3)
beforeEach(module('myApp'));
var scope, ctrl;
beforeEach(inject(function($controller, $rootScope) {
scope = $rootScope.$new();
ctrl = $controller('MyCtrl1', {$scope: scope});
}));
答案 1 :(得分:0)
尝试,
beforeEach(inject(function($controller) {
scope = {};
MyCtrl1 = $controller('MyCtrl1', {
$scope: scope
});
}));