постом выше ерудну сморозил
дело было утром )
Сообщение от 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>