maximkv25
@maximkv25
web-developer

Как получить доступ к переменной?

Приветствую,

angular 1.5

есть некая фабрика
(function() {
    'use strict';

    angular
        .module('buzz')
        .factory('getLazyLoad', getLazyLoad);

    function getLazyLoad($rootScope, $timeout, messageApiService){

        var get_mesList_scrPos_ls = JSON.parse(localStorage.getItem('mesList_scrPos_ls'));

        var getMessage = function() {
            this.previewList = [];
            this.busy = false;
            this.ScrToSave = false;
            this.offset = 0;
            this.count = location.href == location.href && get_mesList_scrPos_ls.offset <= 20 ? 20 : get_mesList_scrPos_ls.offset;
        };

        getMessage.prototype.nextSet = function(){
            var that = this;

         // Часть кода упущена и не столь важна

        var _method = '';

        // Нужно получить данные с setMethod 

       // Если вызвать getMethod, то получаем undefined, а если как ф-цию, то пишет что это не ф-ция
        return {
            setMethod: function (method) {
                _method = method;
            },
            getMethod: function () {
                return _method;
            },
            getM: getMessage

        }


Обращение к фабрике с контроллера
new getLazyLoad.setMethod('message');
new getLazyLoad.getMethod();                  // таким образом доступ к переменной есть...
$scope.messagelist = new getLazyLoad.getM();


В общем в фабрике, где исполняется весь код, нужно получить method установленный в контроллере, как это сделать?
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 1
Xardch
@Xardch
Пробуйте передать getLazyLoad в функцию контроллера и вызывать методы не через конструктор:
getLazyLoad.setMethod('message');
getLazyLoad.getMethod();

https://jsfiddle.net/hfuLLp0d/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы