Angularjs 如何同时运行两个控制器
我正在用AngularJS(使用Yeoman)制作一个webapp,我有一个循环,每秒向计数器添加1。这很好,直到我需要多个带有多个控制器的多个选项卡。我试着在主控制器中运行一个循环,但没有成功 我希望MoneyCtrl中的gameLoop函数能够一直运行,有没有更好的地方来放置此函数 有人知道我如何做到这一点,或者至少达到同样的效果吗Angularjs 如何同时运行两个控制器,angularjs,Angularjs,我正在用AngularJS(使用Yeoman)制作一个webapp,我有一个循环,每秒向计数器添加1。这很好,直到我需要多个带有多个控制器的多个选项卡。我试着在主控制器中运行一个循环,但没有成功 我希望MoneyCtrl中的gameLoop函数能够一直运行,有没有更好的地方来放置此函数 有人知道我如何做到这一点,或者至少达到同样的效果吗 您可以将gameLoop函数放在块上 并使用服务添加资金,以便您可以在每个控制器上要求该服务。是的,您可以同时运行多个控制器,嵌套或并排运行。请显示您的HTML
您可以将gameLoop函数放在块上
并使用服务添加资金,以便您可以在每个控制器上要求该服务。是的,您可以同时运行多个控制器,嵌套或并排运行。请显示您的HTML和JS。如果它像循环和计数器一样简单,那么您可能只需要一个服务或指令,具体取决于细节。你想用计数器解决什么问题,也许有其他解决方案。你能给我们看一些代码和你面临困难的阶段吗?添加了Github链接,对不起。代码必须在问题本身,而不是Github。我已将此添加到app.js,但是现在当我打开它的时候,Money视图没有加载。有什么错误吗?这不应影响控制器的视图呈现。是的,很抱歉,服务中有资本。谢谢你的帮助。
angular.module('incrementalApp', ['ngAnimate', 'ngCookies', 'ngResource',
'ngRoute', 'ngSanitize', 'ngTouch'
]).config(function($routeProvider) {
//...
}).run(function($rootScope, MoneyService, Vars){
var stop;
$rootScope.loop = function() {
if (angular.isDefined(stop) ) {
return;
}
stop = $interval(function() {
angular.forEach(Vars.clickers, function(clicker){
MoneyService.addMoney((clicker.amount * clicker.production)/Vars.fps);
});
}, 1000/Vars.fps);
$rootScope.stopLoop = function() {
if (angular.isDefined(stop)) {
$interval.cancel(stop);
stop = undefined;
}
};
$rootScope.$on('$destroy', function() {
// Make sure that the interval is destroyed too
$scope.stopFight();
});
};
$scope.loop();
})