Angular:错误:[$injector:unpr]未知提供商:$scopeProvider <- $scope
Angular: Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope
关于在测试和服务中注入$scope的另一个问题:-)学习angular并使用angular-seed应用程序作为开始。
我已经扩展了我的控制器到$scope,但现在我的默认角种子测试失败了
错误:[$injector:unpr]未知提供商:$scopeProvider <- $scope
我不明白是错误与我的控制器或与我的测试…
视图/控制器/服务
(function () {
"use strict";
angular.module("app.view1", ["ngRoute"])
.config(["$routeProvider",
function ($routeProvider) {
$routeProvider.when("/view1", {
templateUrl: "views/view1/view1.html",
controller: "View1Ctrl"
});
}
])
.factory("User", ["$http",
function ($http) {
var User = {};
User.get = function () {
return $http.get("/api/v1/user");
};
return User;
}
])
.controller("View1Ctrl", ["$scope", "User",
function ($scope, User) {
User.get().success(
function (response) {
$scope.user = response;
});
}
]);
}());
'use strict';
describe('app.view1 module', function() {
beforeEach(module('app.view1'));
describe('view1 controller', function(){
it('should ....', inject(function($controller) {
//spec body
var view1Ctrl = $controller('View1Ctrl');
expect(view1Ctrl).toBeDefined();
}));
});
});
应用程序正在工作,我在HTML中看到数据,但测试失败…欢迎提出建议!
我在测试中缺少$scope,这里是更新后的测试:
'use strict';
describe('app.view1 module', function() {
beforeEach(module('app.view1'));
describe('view1 controller', function() {
it('should ....', inject(function($controller, $rootScope) {
//spec body
var $scope = $rootScope.$new(),
ctrl = $controller('View1Ctrl', {
$scope: $scope,
$User: {}
});
expect(ctrl).toBeDefined();
}));
});
});
您正在测试中,没有DOM,也没有$作用域。
你可以通过向$controller服务传递局部变量来处理这个问题,像这样: var $scope = {};
var view1Ctrl = $controller('View1Ctrl', { $scope: $scope });
相关文章:
- 如何访问提供给Jade模板的所有选项
- 如何将javascript变量作为参数提供给asp.net方法
- 如何打开一个新窗口或选项卡,并将其提供给javascript执行
- 用PHP读取另一个网站的源代码,并将其作为字符串提供给JavaScript
- 如果($_SERVER[“REQUEST_METHOD”]=“POST”)条件在ajax调用不同的php文件进行验证和提
- Javascript尽管ID不同,但只有第一个按钮提交给Ajax表单
- 在出厂时注入服务错误: [$injector:unpr] 未知提供程序: $scopeProvider <- $scop
- 反应错误“失败的 propType:提供给”提供者“的无效道具'子项',需要单个 ReactElement'
- js.erb文件中提供给RegExp构造函数的标志无效
- 将$scope对象作为参数提供给$digest中的观察者背后的逻辑
- 提交由 jquery 生成的表单
- Javascript 函数调用 navigator.geolocation.getCurrentPosition 经常提
- 如何将外部 css/js 文件提供给 NodeJS 应用程序显示的 html 文件
- AngularJS, MVC.Unknown provider: $ScopeProvider <- $Scope
- 将数据参数(不是查询参数)提供给 window.location.href ?创建动态文件
- 在提供给 Object.asassign 的对象中使用变量作为键
- AngularJS在尝试使用模块时抛出未知提供程序:$scopeProvider <-$scope错误
- 反应路由器提供给“路由”的无效道具“组件”
- 为什么我不能从节点和 express.js 中的 app.get 函数中提取回调
- 如何提高科尔多瓦应用程序的安全性