繁体   English   中英

AngularJS仅一次创建控制器

[英]AngularJS create controller only one time

我研究了一次只能创建控制器的方法,但是没有找到任何真正好的解决方案。

A仅找到了一些解决方法

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

因此,如果加载了模板,则必须使用特殊的myService来聚合控制器,服务也必须进行检查。 如果已经创建控制器,则应加载旧控制器,而不是新控制器,否则将刚创建的控制器添加到控制器集合中。

算法似乎很简单,但是与angular一起使用很难看。 我希望我对角度的了解很弱,这就是为什么我找不到更好的解决方案的原因。

您能否提出更好的主意或解决方案! 可能我需要重新设计基础库中已经实现的某些东西或服务...

添加更多说明:

ng-app=singleApplication
|-ng-view

SingleApplication具有ng-route来管理ng-view的模板。 每个模板都有一个唯一的控制器 每当与当前视图不同时,我都会看到控制器的创建。 但是我不需要向服务器询问数据,如果模板已加载一次。 我需要显示带有旧数据,表,控件的模板,但是如果控制器每次都在创建,则无法显示。 所有数据都加载到controller-scopethis )中,所有键在controller-scope中都是唯一的,但是如果我将数据保存到$ scope$ rootScope ,我没有很好的保证。

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

请在下面找到示例

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM