【问题标题】:ocLazyLoad - one controller calling anotherocLazyLoad - 一个控制器调用另一个
【发布时间】:2014-11-12 04:46:40
【问题描述】:

在我的 header.html 中,我有 2 个控制器,标题控制器和语言控制器。

这是我的 HeaderCtrl:

define(
[
    'angular', 'layout/layout.module','languages/languages.module',    
    'languages/controllers/LanguagesCtrl'
],
function (angular) {
'use strict';

angular.module('app.layout').controller('HeaderCtrl', HeaderCtrl);

/* @ngInject */
function HeaderCtrl() {
    var header = this;
    header.pageTitle = 'Response coming from HeaderCtrl';
}

});

我的状态:(通过 svc 调用 json 文件)

 "header": {
              "templateUrl": "app/layout/views/tpl.header.html",
              "controller": "HeaderCtrl as header",
              "resolve": {},
              "data": {
                "moduleName": "app.layout",
                "moduleFiles": [
                  "app/languages/controllers/HeaderCtrl.js"
                ]
              }

问题:

如何将范围从 LanguagesCtrl 传递到 HeaderController,以便我的 html 同时具有 HeaderCtrl 和 LanguagesCtrl 范围,而不需要单击事件? [由于 HeaderController 的定义,LanguageController 正在加载,我无法与之通信。]

【问题讨论】:

    标签: angularjs lazy-loading


    【解决方案1】:

    我有一个带有警告的解决方案:

    如果你去 github 获取 angularjs-requirejs-lazy-controllers,有一个 mbLazyController 指令可以完成这项工作。

    警告:

    据我所知/已经尝试过,您不能使用“Controller as”场景,因此您必须使用 $scope:

      <div mb-lazy-controller="languages/controllers/LanguagesCtrl">
      {{message}}     
      </div>
    

    但它确实可以完成这项工作,并且可以与 AngularJs 1.3.2 一起使用。

    【讨论】:

      猜你喜欢
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多