我有一项服务:
angular.module('cfd')
.service('StudentService', [ '$http',
function ($http) {
// get some data via the $http
var path = 'data/people/students.json';
var students = $http.get(path).then(function (resp) {
return resp.data;
});
//save method create a new student if not already exists
//else update the existing object
this.save = function (student) {
if (student.id == null) {
//if this is new student, add it in students array
$scope.students.push(student);
} else {
//for existing student, find this student using id
//and update it.
for (i in students) {
if (students[i].id == student.id) {
students[i] = student;
}
}
}
};
但是当我调用 save()
时,我无法访问 $scope
,也无法获得 ReferenceError: $scope is not defined
。因此(对我来说)逻辑上的步骤是使用 $scope
提供 save () ,因此我还必须将它提供/注入到 service
。如果我这样做:
.service('StudentService', [ '$http', '$scope',
function ($http, $scope) {
我得到以下错误:
错误: [ $injector: unpr ]未知提供程序: $scopeProvider <-$scope <- 学生服务
链接中的错误(哇,这是整洁!)让我知道它是与注入器相关的,并且可能与 js 文件的声明顺序有关。我已经尝试在 index.html
中重新排序它们,但我认为这是一些更简单的东西,例如我注射它们的方式。
使用角用户界面和角用户界面路由器