-3
我想開始使用angular.js,但我無法弄清楚如何在測試之前將簡單變量注入到控制器中。如何注入變量到控制器
這是我的控制器:
angular.module("app").controller("SimpleController", SimpleController);
function SimpleController() {
var vm = this;
vm.myVar = 1;
vm.getMyVar = function() {
return vm.myVar;
};
}
我的測試如下所示:
describe("SimpleController", function() {
var vm;
beforeEach(module('app'));
beforeEach(inject(function($controller, $rootScope) {
vm = $controller('SimpleController', {
$scope: $rootScope.$new(),
myVar: 2
});
}));
it('myVar should be 2 not 1', function() {
expect(vm.getMyVar()).toEqual(2);
});
});
我做了很多谷歌的搜索,但是這的確是令人困惑,因爲很多人都在控制器使用$scope
而不是像我一樣this
。但我想變量的注入也應該與this
一起工作?
是的,我知道'$ scope'的行爲。實際上,它似乎可以並行使用'$ scope'和'this'(請參閱http://stackoverflow.com/questions/16619740/angular-should-i-use-this-or-scope)。假設我使用'$ scope'並按照您的建議構建控制器:我如何在我的測試用例中模擬somevar以獲得另一個值? – Jonny
@Jonny var controller = $ controller('SimpleController',{$ scope:$ scope}); $ scope.myVar ='東西' – Anonymous