Показать сообщение отдельно
  #3 (permalink)  
Старый 16.07.2013, 20:52
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

постом выше ерудну сморозил дело было утром )
Сообщение от Shitbox2
В реальности кнопка выбора файла и поле для перетаскивания это разные не вложенные друг в друга теги.
и, возможно, разные scope

Сообщение от Shitbox2
P.S. Пока видятся два варианта: общаться через модель в корневой области видимости (вотчить ее изменения). Или использовать emit в корневую область и из нее рассылать всем broadcast
как вариант создать сервис

В моем примере, сервис аккумулирует коллбеки и запускает их по вызову метода сервиса:
<!DOCTYPE HTML>
<html id="ng-app" ng-app="app"> <!-- id="ng-app" IE<8 -->
<head>

    <script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
    <script>

        var app = angular.module( 'app', []);

        app.factory( '$drag', function() {
            return {
                callbacks: [],
                action: function() {
                    this.callbacks.forEach(function( callback ) {
                        callback();
                    });
                }
            };
        });

        app.controller( 'scope2', function( $scope, $drag ) {
            $scope.action = function() { $drag.action() };
            $drag.callbacks.push(function() {
                alert( 'scope2' );
            });
        });

        app.controller( 'scope3', function( $scope, $drag ) {
            $scope.action = function() { $drag.action() };
            $drag.callbacks.push(function() {
                alert( 'scope3' );
            });
        });

        app.controller( 'scope4', function( $scope, $drag ) {
            $scope.action = function() { $drag.action() };
            $drag.callbacks.push(function() {
                alert( 'scope4' );
            });
        });

    </script>
</head>
<body ng-controller="scope2">
<input type="button" ng-click="action()" value="$scope2.action()">

<div ng-controller="scope3">
    <input type="button" ng-click="action()" value="$scope3.action()">

    <div ng-controller="scope4">
        <input type="button" ng-click="action()" value="$scope4.action()">

    </div>
</div>

</body>
</html>
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием