主模块内的 var app 无法被同一模块内的其他组件识别

var app inside of Main Module not recognized by other components inside of the same module

我有一个主模块正在创建我的 angular.module,名为 'FormTest'。在 FormTest 模块内部,我有一个名为 'ji-Text' 的指令。我有延迟加载继续将指令和视图加载到 .js 文件中(不那么重要)。问题是在我的指令内部,无法识别 "app" 。但我不确定为什么,因为它在同一个模块 "FormTest" 中。我收到的错误是 TS2304“找不到名称 'app'。

指令

module FormTest {
    app.directive('jiText', function () {
        return {
            restrict: 'E',
            transclude: true,
            scope: { name: '@' },
            templateUrl: 'FormText/views/ji-Text.html'
        }
    });
}

主模块

module FormTest {
    "use strict";

        //Create the formTest module

        var app = angular.module('FormTest', ['dx'])
        app.config(confirm);
    }

延迟加载

                .state('FormTest', <ng.ui.IState> {
                    url: '/formTest',
                    templateUrl: 'FormTest/FormTest.html',
                    loadCtl: ['$ocLazyLoad', function ($ocLazyLoad) {
                        return $ocLazyLoad.load('js/FormTest.js');
                    }]
                })

您不能通过这种方式访问​​模块!您必须使用 angular.module 在上下文中获取它。而且,strict mode 将阻止您使用任何未声明的变量。只需更改为:

module FormTest {
    angular
     .module('FormTest') //Gets the FormTest Module
     .directive('jiText', function () {
        return {
            restrict: 'E',
            transclude: true,
            scope: { name: '@' },
            templateUrl: 'FormText/views/ji-Text.html'
        }
    });
}