AngularJS非嵌套div中的相同控制器

时间:2014-06-12 22:43:56

标签: angularjs angularjs-controller

我有两个独立的div,如下面的代码所示。我要做的是从第一个div更新Controller,然后使用相同的控制器检测第二个div中的更改。当我按下按钮时,我就在这里'在控制台上打印,但第二个div中的数据不会更新。它应该改为"点击"。

<html ng-app="app">
<head>
    <title></title>
</head>
<body>

    <h1>Divs below should not be nested</h1>

    <div id="notNested1" ng-controller="Controller1">
        <button ng-click="buttonClick()">Click me</button>
    </div>
    <div id="notNested2" ng-controller="Controller1">
        <p>{{paragraph}}</p>
    </div>

    <script type="text/javascript" src="libs/angular/angular.js"></script>

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

        function Controller1($scope) {

            $scope.paragraph = 'initial';

            $scope.buttonClick = function () {
                console.log('i am here');
                $scope.paragraph = "clicked";
            };
        }
    </script>
</body>
</html>

如何解决此问题?这也有什么问题?是因为两个div的$ scope不同吗?

由于

1 个答案:

答案 0 :(得分:1)

您应该使用服务/工厂共享数据。

你也可以用那里的数据创建一个父控制器,并从子控制器引用它,但共享服务似乎更好。

是的,您有两个不同的范围,因此它们不会相互影响。