到目前为止,我曾尝试过以下代码
HTML
cursor.execute("INSERT INTO time2 (col1, EventTimeZone) \
SELECT %s, SUBSTR('%s', 24, 6) \
FROM dual",
(row[0], row[1]))
在我的js中
<div ng-controller="mycontroller"> <button ng-click ="clickme()">
demoooooo</button> {{message}}</div>
<div ng-controller="hellocontroller">{{message}}</div>
我的问题是,单击按钮后,只有数据应该在两个控制器中呈现,谢谢!任何人都可以清楚地向我解释我怎么能实现它。 在我的第二个控制器中,数据出现在按下按钮
之前答案 0 :(得分:0)
您需要向所有控制器广播活动。然后听取该事件并对其进行任何操作,例如打印您的信息。广播需要$rootScope.$broadcast
以及一个监听器$scope.$on
,它将执行该功能(并显示一条消息)。
这是一个有效的演示:
var app = angular.module('myApp', []);
app.factory("datafactory", function() {
var mouse = {}
mouse.dosum = function() {
return "my world";
}
return mouse;
});
app.controller("mycontroller", function($scope, $rootScope, datafactory) {
$scope.clickme = function() {
$rootScope.$broadcast("some-event");
}
$scope.$on("some-event", function() {
$scope.message = datafactory.dosum()
})
});
app.controller("hellocontroller", function($scope, datafactory) {
$scope.$on("some-event", function() {
$scope.message = datafactory.dosum()
})
});
&#13;
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="myApp">
<div ng-controller="mycontroller">
<button ng-click="clickme()">Broadcast</button>
<hr>
[mycontroller] {{message}}
</div>
<hr>
<div ng-controller="hellocontroller">
[hellocontroller] {{message}}
</div>
</div>
</body>
</html>
&#13;
答案 1 :(得分:-1)
工厂是一个很好的解决方案,可以使用外部文件来处理API调用的数据或类,但工厂的问题是为每个控制器创建一个新实例,尝试创建Angularjs服务(使用本教程:{{ 1}})
angular服务将为此类创建一个实例,这样您就可以在控制器之间共享数据。