我调查了如何只创建一次控制器,但我没有找到任何真正好的解决方案。
A只找到了一些解决方法:
因此,如果我的模板加载,我必须使用 special myService 来聚合控制器,服务也必须进行检查。如果已经创建了控制器 - 应该加载旧的控制器,而不是新的控制器,另一种方式是刚刚创建控制器集合。
算法看起来很简单,但对于使用角度来说很难看。我希望我的角度非常弱,这就是为什么我没有找到更好的解决方案。
能否请您提出更好的想法或解决方案! 可能我需要重新设计我需要的东西或服务已在基础库中实现...
添加更多说明:
ng-app=singleApplication
|-ng-view
SingleApplication具有 ng-route 来管理 ng-view 的模板。每个模板都有一个唯一控制器。每当与当前视图不同时,我都会看到控制器创建。但是如果模板加载一次,我需要不要求服务器提供数据。我需要显示模板与旧数据,表格,控件,但我不能控制器每次都创建。所有数据都加载在控制器范围(此)中,所有键在控制器范围中都是唯一的,但如果我没有很好的保证将数据保存到 $ scope 或 $ rootScope 。
答案 0 :(得分:2)
如果所有控制器都是在一个模块下创建的,那么我们可以使用该模块控制器
请找到以下示例
var app = angular.module('app', []);
app.controller('TextController', function ($scope) {
$scope.text = {
message: 'Welcome!!'
};
});
app.controller('ItemController', function ($scope) {
$scope.items = [{
title: 'Pencil',
quantity: 8,
price: 4.2
}, {
title: 'Pen',
quantity: 2,
price: 5.2
}, {
title: 'Watch',
quantity: 3,
price: 10.2
}];
});