gpt4 book ai didi

javascript - AngularJS 仅创建一次 Controller

转载 作者:行者123 更新时间:2023-12-02 14:25:42 27 4
gpt4 key购买 nike

我研究了如何创建 Controller 一次,但没有找到任何真正好的解决方案。

A 仅找到了一些解决方法:

  1. 在 $rootScope 中创建 Controller 列表并在此处添加创建的 Controller
  2. 创建 masterController 并在其范围内应用解决方案以将所有创建的 Controller 保存在 masterControllerScope 的集合中

因此,如果我的模板加载,我必须使用特殊的 myService 来聚合 Controller ,服务也必须进行检查。如果 Controller 已创建 - 应该加载旧 Controller ,而不是新 Controller ,或者通过其他方式将刚刚创建的 Controller 添加到 Controller 集合中。

算法看起来很简单,但是与 Angular 一起使用很难看。我希望我对 Angular 很弱,这就是为什么我没有找到更好的解决方案的原因。

您能否提出更好的想法或解决方案!?可能我需要重新设计我需要的东西或服务,而我需要的东西或服务已经在基础库中实现了...

添加更多说明:

ng-app=singleApplication
|-ng-view

SingleApplication 有ng-route来管理ng-view的模板。每个模板都有一个独特的 Controller 。每次如果应用与当前 View 不同,我都会看到 Controller 创建。但如果模板已加载一次,我不需要向服务器询问数据。我需要显示包含旧数据、表格、控件的模板,但如果 Controller 每次都在创建,我就不能显示模板。所有数据都加载到 Controller 范围(这个)中,所有键在 Controller 范围中都是唯一的,但是如果我将数据保存到 $scope$rootScope

最佳答案

如果所有 Controller 都创建在一个模块下,那么我们就可以使用该模块进行 Controller

请查看下面的示例

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
}];
});

http://codepen.io/nagasai/pen/bZoVVG

关于javascript - AngularJS 仅创建一次 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com