2016-04-11 14 views
1

Başka bir denetleyiciden bir denetleyiciyi çağırmaya çalışıyorum. Her ikisi de farklı modüllerdedir.Açısal Denetleyici farklı modül denetleyicisinden çağrılıyor

(function (ax, ng) { 

    ng.module('ax.webagent.survey').directive('axSurveyFieldKnowledgeBase', AxSurveyFieldKnowledgeBase); // Name must be lowercase!!! 

    function AxSurveyFieldKnowledgeBase() { 

     return { 
      restrict: 'A', 
      scope: { 
       // We don't want long names :) 
       axC: '=axControl', // Bi-directional binding - to można zapodawac do kązdej dyrektywy - definiuje jak są ich wartości bindowane 
       li18n: '=axI18n', 
       isReadonly: '=axIsReadonly' 
      }, 
      link: link, 
      templateUrl: '../../../WorkflowBuilder/templates/survey/fields/AxSurveyFieldKnowledgeBase.html', 
      controllerAs: 'vm', 
      bindToController: true, 
      controller: ['$controller', '$scope', 'Helpers', controller] 
     } 
    } 

    function controller($controller, $scope, helpers) { 
     var KnowledgeController2 = $scope.$new(); 
     var knC = $controller('KnowledgeController2', { $scope: KnowledgeController2 }); 

    } 
}); 

hata i:

var AxProjectsWeb = angular.module('WorkflowBuilder', ['angularModalService', 'sticky', 'leaflet-directive', 'ui.bootstrap', 'nya.bootstrap.select', 'ngSanitize', 'ui.select']); 

AxProjectsWeb.controller('KnowledgeController2',function(){}); 

Yani KnowledgeController2 kontrolör aşağıda bir denetleyici içinde çağırmak istiyorum biridir:

var app = angular.module("WorkflowBuilder", ["ax.workflow.builder"]); 

WorkflowBuilder kontrolör altında bulunan bir modüldür recieve geçerli:

Error: [ng:areq] http://errors.angularjs.org/1.4.4/ng/areq?p0=KnowledgeController2&p1=not%20a%20function%2C%20got%20undefined 
    at Error (native) 
    at http://localhost:54486/Scripts/angular.min.js:6:416 
    at pb (http://localhost:54486/Scripts/angular.min.js:22:41) 
    at Sa (http://localhost:54486/Scripts/angular.min.js:22:128) 
    at b.$get (http://localhost:54486/Scripts/angular.min.js:80:25) 
    at new controller (http://localhost:54486/WorkflowBuilder/js/survey/fields/axSurveyFieldKnowledgeBase.js:32:19) 
    at Object.e [as invoke] (http://localhost:54486/Scripts/angular.min.js:39:96) 
    at b.$get.Q.instance (http://localhost:54486/Scripts/angular.min.js:80:151) 
    at K (http://localhost:54486/Scripts/angular.min.js:61:140) 
    at http://localhost:54486/Scripts/angular.min.js:68:475 
+0

Bir denetleyiciyi diğerine enjekte edemezsiniz. Tam olarak ne yapman gerekiyor? Yanlış mimari düşünebilirsiniz. – inspired

cevap

0

Hata, 2 1. snippet'lerde yatıyor.

Değişiklik bağımlılıkları ile aynı modülü iki kez bildirirsiniz.

Bir göz ardı edilecektir, denetleyici tanımlandı nerede gözardı biridir sanırım. Bağımlılığı ["ax.workflow.builder"] diğerleriyle taşıyın.

+0

Yaptım. Aslında hiçbir şey değişmiyor – kamilws

+0

1. snippet'ten 2. argümanı kaldırdınız mı yoksa boş bir diziye mi izin verdiniz? Eğer açık tanık dizisi varsa, onu kaldırın. Ve eğer bu modülü veya dosyanızdaki başkaları için aynısını yapmadıysanız kontrol edin, her modül için 2. argüman kümeleriyle (bağımlılıklar) sadece bir tane angular.module sahip olmalısınız. – Walfrat