AngularJS在非嵌套div中使用同一控制器
我有两个独立的div,如下面的代码所示。我试图做的是从第一个div更新控制器,然后使用相同的控制器检测第二个div中的更改。当我按下按钮时,控制台上会打印“我在这里”,但第二部分中的数据不会更新。它应该改为“点击”AngularJS在非嵌套div中使用同一控制器,angularjs,angularjs-controller,Angularjs,Angularjs Controller,我有两个独立的div,如下面的代码所示。我试图做的是从第一个div更新控制器,然后使用相同的控制器检测第二个div中的更改。当我按下按钮时,控制台上会打印“我在这里”,但第二部分中的数据不会更新。它应该改为“点击” 下面的div不应嵌套 点击我 {{段落} var-app=angular.module('app',[]); 功能控制器1($scope){ $scope.paragration='首字母'; $scope.buttonClick=函数(){ log(“我在这里”); $scope
下面的div不应嵌套
点击我
{{段落}
var-app=angular.module('app',[]);
功能控制器1($scope){
$scope.paragration='首字母';
$scope.buttonClick=函数(){
log(“我在这里”);
$scope.paragration=“单击”;
};
}
我如何解决这个问题?还有什么问题?是不是因为两个div的$scope不同
谢谢您可能应该使用服务/工厂共享数据 您还可以使用那里的数据创建一个父控制器,并从子控制器引用它,但共享服务似乎更好
是的,您有两个单独的作用域,因此它们彼此不交互。这意味着我应该有两个单独的控制器。第一个控制器广播事件,第二个控制器捕获事件,然后更新作用域?我的另一个问题是,有没有一种方法可以用一个控制器来实现呢?我使用了两个独立的控制器,通过触发广播事件来实现。我还维护一个单独的共享工厂,因为有时我需要检查是否在第一个控制器中选择了数据。学习使用angular时常见的误解是控制器的实例将是相同的,而不是相同的。每个元素都有自己的实例
<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>