首页 > 解决方案 > 如何调用angular js工厂类

问题描述

我需要在表单保存后调用 scrolltop 函数。我编写工厂类以在我的应用程序中随处访问。但工厂电话不起作用。

这是我的工厂课

    .factory('scrollTop', function () {
    return {
        start: function () {
            $window.scrollTo(0, angular.element(document.getelementsbyclassname('validation-position')).offsetTop);  
        },

    };
})

我在保存函数中调用了这个函数。

     $scope.saveUpdateUserDetails = function (id) {
        if (id == undefined) {
            $scope.saveUser();
            $scope.scrollTop.start();
        } else {

            $scope.updateUser(id);
            $scope.scrollTop.start();
        }
    };

但错误说“无法读取未定义的属性'开始'”。我如何在保存函数中调用我的工厂函数。

标签: javascriptangularjs

解决方案


您必须像此代码示例一样在控制器定义中注入您的工厂或服务

app.controller('MyController',['$scope','scrollTop',function($scope, scrollTop){
$scope.saveUpdateUserDetails = function (id) {
        if (id == undefined) {
            $scope.saveUser();
            scrollTop.start();
        } else {

            $scope.updateUser(id);
            scrollTop.start();
        }
    };
}]);

推荐阅读