0

私のハードルを説明するために、 少し裏話を。app.jsのメインモジュールへのディレクティブを含むすべてのrequirejsパスファイル(基本的にディレクティブ)を挿入していましたが、これは完璧に機能していました。やや似ている

define(['angularAMD', 'angular-route', 'angular-resource', 'angularTranslate', 'angularTranslateLoaderStaticFiles', 'bootstrap', 'angular-idle', 'loadingMaskDirective', 'multiselectDirective', 'treeview.directive', 'tabs', 'checklist.directive'], function(angularAMD) { 
var app = angular.module("myApp", ["ngRoute", "ngResource", "ngTable", "myApp.directives", 'ui.bootstrap', 'flow']);
app.config(....){
/**some route provider**/
}...
angularAMD.bootstrap(app);
return app;

すべてのディレクティブを定義し、それらをメイン モジュールに挿入しました。しかし、初期負荷を軽減するために、個々のコントローラーでいくつかのディレクティブを定義したいと考えています。何か方法があるはずです。右 !!

そして、私のディレクティブjsファイルのコードは次のようになります..

define(['angular'], function() {
angular.module('myApp').directive('SomeDirective',
        ['$parse', '$compile', '$rootScope', '$filter', function($parse, $compile, $rootScope, $filter) {
.........

そのため、app.js ではなくページ コントローラーで同じものを定義しようとすると、機能しません。ただし、この場合のファクトリ関数は機能しますが、ディレクティブは機能しないことに驚いています。

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

2

アプリを使用してディレクティブを作成しようとしましたか?

define(['app'], function(app) {
app.directive('SomeDirective',
        ['$parse', '$compile', '$rootScope', '$filter', function($parse, $compile, $rootScope, $filter) {
.........

によって提供される代替手段は次のangularAMDとおりです。

define(['angularAMD'], function(angularAMD) {
angularAMD.directive('SomeDirective',
        ['$parse', '$compile', '$rootScope', '$filter', function($parse, $compile, $rootScope, $filter) {
.........

2 番目のアプローチの利点は、をロードする前にディレクティブをロードできるようにすることapp.jsです。詳細については、アプリケーション ワイド モジュールのロードを参照してください。

于 2015-04-30T14:25:31.777 に答える