Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.08.2015, 12:03
Аспирант
Отправить личное сообщение для A1x1On2015 Посмотреть профиль Найти все сообщения от A1x1On2015
 
Регистрация: 24.02.2015
Сообщений: 37

Функция factory из другого контролера
Здравствуйте,
Мой код:
var ModuleManager = angular.module("AngularManager", ["ngRoute"]);

ModuleManager.controller("OpenTask", function ($scope, OpenTaskService) {

        $scope.ClickedTask = function (TaskId) {
            key = TaskId;

            $(".RemoveTask").fadeIn();
            $(".saveTask").val("Сохранить");

            var LIKEFUNCTION = OpenTaskService.GetTask().then(function (t) {
                $scope.Task = t.data;
                if ($scope.Task[3] !== "1") {
                    $(".finishtag").fadeIn();
                    $(".Cancelfinishtag").fadeOut();
                } else {
                    $(".finishtag").fadeOut();
                    $(".Cancelfinishtag").fadeIn();
                }
}

ModuleManager.factory("OpenTaskService", function ($http) {
        var fac2 = {};
        fac2.GetTask = function () {
            return $http({ method: 'GET', url: "/Manager/OpenTask/", params: { 'TaskId': key } });
        }
        return fac2;
    });


Я хочу из другого контроллера вызвать это OpenTaskService.GetTask() в идеале:

ModuleManager.controller("TaskFrom", function ($scope, TService) {

         $scope.EndActTask = function (obj) {
            idTask = obj.currentTarget.id;
            TService.EndActTask().then(function (d) {
                $scope.Tags = d.data;
                $("i#" + idTask).children(".d-status").html("<b>Cтатус: </b>Завершен");
                LIKEFUNCTION // тут вызвать сервис точнее не сам сервис, а функцию которая его реализует в контроллере, как то так можно придумать??
            }, function () {
                alert("Fail of getting tags");
            });
        }


        }
Ответить с цитированием
  #2 (permalink)  
Старый 21.08.2015, 12:55
Новичок на форуме
Отправить личное сообщение для ha_sash Посмотреть профиль Найти все сообщения от ha_sash
 
Регистрация: 16.01.2015
Сообщений: 6

А события не подойдут?
Ответить с цитированием
  #3 (permalink)  
Старый 21.08.2015, 15:03
Аспирант
Отправить личное сообщение для A1x1On2015 Посмотреть профиль Найти все сообщения от A1x1On2015
 
Регистрация: 24.02.2015
Сообщений: 37

Сообщение от ha_sash Посмотреть сообщение
А события не подойдут?
нет, не подойдут
Ответить с цитированием
  #4 (permalink)  
Старый 21.08.2015, 17:41
Новичок на форуме
Отправить личное сообщение для ha_sash Посмотреть профиль Найти все сообщения от ha_sash
 
Регистрация: 16.01.2015
Сообщений: 6

А чисто из интереса, а почему события не подойдут?
Ответить с цитированием
  #5 (permalink)  
Старый 21.08.2015, 18:33
Аспирант
Отправить личное сообщение для A1x1On2015 Посмотреть профиль Найти все сообщения от A1x1On2015
 
Регистрация: 24.02.2015
Сообщений: 37

Сообщение от ha_sash Посмотреть сообщение
А чисто из интереса, а почему события не подойдут?
Мне на ум почему-то приходят всякие триггеры с извращением. Возможно я что-то не понимаю, как можно это реализовать?
Ответить с цитированием
  #6 (permalink)  
Старый 24.08.2015, 13:07
Новичок на форуме
Отправить личное сообщение для ha_sash Посмотреть профиль Найти все сообщения от ha_sash
 
Регистрация: 16.01.2015
Сообщений: 6

В контроллере AngularManager определяете свою функцию, и там же делаете подписчика типа:
ModuleManager.controller("OpenTask", function ($scope) {

    $scope.$on('myEvent', function(event, arg1, arg2) {
       //Тут дергаете то что нужно
    });
});


//Ну а само событие описывается так
ModuleManager.controller("TaskFrom", function ($scope, $rootScope) {
    $rootScope.$emit('myEvent', 1, 2);
});


$rootScope просто чтоб событие было глобальное это вовсе не обязательно оно распространяется по иерархии в документации там вполне доступно описано..
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
js рекурсивная функция с for.. in циклом frying Общие вопросы Javascript 6 25.08.2014 10:50
не вызывается функция при изменении option soft4you Общие вопросы Javascript 1 23.07.2014 17:41
AJAX функция для новых html-элементов broadcast77 AJAX и COMET 25 03.03.2014 14:01
функция не успевает Sadist_dead Элементы интерфейса 22 02.10.2011 19:00
Где вызывается функция? cradis Общие вопросы Javascript 5 23.04.2011 13:47