【问题标题】:Insert data in mongoose using a factory使用工厂在猫鼬中插入数据
【发布时间】:2014-11-18 19:50:04
【问题描述】:

我正在尝试使用 angularjs 和 node js 在猫鼬中插入数据。 为此,我创建了一个工厂,我在其中调用另一个 js 文件,并在其中创建了我的数据库连接。

但是当我尝试这样做时,它给了我错误。

这是我的工厂方法:

'use strict'
test.factory('registrationservice', function($http, $scope){
    console.log('aa');
    $scope.newregister = function(user, $scope) {

        var newUser = new user({
            username: $scope.uName,
            firstname: $scope.fName,
            lastname: $scope.lName,
            email:$scope.mail,
            password: $scope.newpwd

        });

        console.dir(newUser);

        var $promise = $http.post('data/registration.js', newUser);
        $promise.then(function(msg){
            if(msg.data == 'success') console.log('success login')
            else
                console.log('login failed');
        });
    };

});

以下是我得到的错误:

Error: [$injector:unpr] http://errors.angularjs.org/1.2.7/$injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C-%20registrationservice
    at Error (native)

【问题讨论】:

  • 你如何使用registrationservice?
  • 我在控制器中使用它
  • 我感觉你试图将'$scope'从控制器传递到工厂
  • 不,我的控制器是这样的:test.controller('registrationCtrl', function(registrationservice){ console.log('1'); });

标签: angularjs mongoose factory


【解决方案1】:

您不能将 $scope 注入工厂。服务没有范围。只有控制器。

所以你必须使用这样的东西。

test.factory('registrationservice', function($http){
    var factory = {};
    // if user is another service you have to inject it in factory defenotion function
    // and delete from here.
    facotry.newregister = function(user, $scope) {

        var newUser = new user({
            username: $scope.uName,
            firstname: $scope.fName,
            lastname: $scope.lName,
            email:$scope.mail,
            password: $scope.newpwd

        });

        return $http.post('data/registration.js', newUser);
    }
    return factory;
});

然后在你的控制器中。

test.controller('registrationCtrl', function($scope, $log, registrationservice){ 
    registrationservice.newregister(user, $scope).success(function(msg){
        $log.info(msg.data);
    })
});

【讨论】:

  • 我尝试过实现它,但我收到错误消息:'TypeError: undefined is not a function' at var newUser = new user({
  • 你在哪里定义了用户对象?
  • 这就是我在代码中注释的原因。我不知道你从哪里得到这个对象。你如何定义用户?
  • 我也怀疑 .js 文件的发布请求。
  • 现在看你的另一个话题here我明白什么是用户。你完全没有抓住重点。您正在尝试将数据从客户端发送到服务器端 javascript。您必须使用服务器端 javascript 创建 RESTful 服务,然后将帖子发送到该服务。
猜你喜欢
  • 2017-03-02
  • 2014-12-22
  • 2022-12-19
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 2014-07-15
  • 2018-12-03
  • 2019-06-09
相关资源
最近更新 更多