Angularjs 模块中的Angular js指令工作不正常

Angularjs 模块中的Angular js指令工作不正常,angularjs,angularjs-directive,angularjs-routing,angularjs-module,Angularjs,Angularjs Directive,Angularjs Routing,Angularjs Module,我有一个模块调用“menuLeft”,当模块启动时,没有正确加载我的指令,但如果正确运行我的函数en el方法“run”。 我不知道这是为什么。 这是我的密码 (function () { angular.module('menuLeft', []); angular.module('menuLeft') .run(htmlMenuDirectivaGrupo) .directive('ctrlMenuDirectivaGrupo', ctrlMenuDirectivaGr

我有一个模块调用“menuLeft”,当模块启动时,没有正确加载我的指令,但如果正确运行我的函数en el方法“run”。 我不知道这是为什么。 这是我的密码

(function () {

 angular.module('menuLeft', []);

angular.module('menuLeft')
    .run(htmlMenuDirectivaGrupo)
    .directive('ctrlMenuDirectivaGrupo', ctrlMenuDirectivaGrupo);


//MY MENU DIRECTIVE (THIS NOT LOAD)
//MENU GRUPO
/**
 * @ngInject
 */
function ctrlMenuDirectivaGrupo($timeout) {
    alert('hello ctrlmenu');

    return {
        scope: {
            section: '='
        },
        templateUrl: 'partials/menuToogle.tmpl.html',
        link: function ($scope, $element) {
            var controller = $element.parent().controller();

            $scope.isOpen = function () {
                return controller.isOpen($scope.section);
            };
            $scope.toggle = function () {
                controller.toggleOpen($scope.section);
            };
        }
    };


}



 //MY TEMPLATE FOR DIRECTIVE (THIS IF LOAD)
/**
 * @ngInject
 */
function htmlMenuDirectivaGrupo($templateCache) {
alert('hello htmlmenu');
    $templateCache.put('partials/menuToogle.tmpl.html',
        '<md-button class="md-button-toggle"\n' +
        '  ng-click="toggle()"\n' +
        '  aria-controls="docs-menu-{{section.name | nospace}}"\n' +
        '  flex layout="row"\n' +
        '  aria-expanded="{{isOpen()}}">\n' +
        '  {{section.name}}\n' +
        '  <span aria-hidden="true" class=" pull-right fa fa-chevron-down md-toggle-icon"\n' +
        '  ng-class="{\'toggled\' : isOpen()}"></span>\n' +
        '</md-button>\n' +
        '<ul ng-show="isOpen()" id="docs-menu-{{section.name | nospace}}" class="menu-toggle-list">\n' +
        '  <li ng-repeat="page in section.pages">\n' +
        '    <menu-link section="page"></menu-link>\n' +
        '  </li>\n' +
        '</ul>\n' +
        '');


}

})();
(函数(){
角度模块('menuLeft',[]);
角度.module('menuLeft')
.run(htmlmenuidirectivagrupo)
.指令(“ctrlMenuDirectivaGrupo”,ctrlMenuDirectivaGrupo);
//我的菜单指令(此命令不加载)
//菜单GRUPO
/**
*@ngInject
*/
函数ctrlMenuDirectivaGrupo($timeout){
警报(“hello ctrlmenu”);
返回{
范围:{
节:'='
},
templateUrl:'partials/menuToogle.tmpl.html',
链接:函数($scope$element){
var controller=$element.parent().controller();
$scope.isOpen=函数(){
返回控制器.isOpen($scope.section);
};
$scope.toggle=函数(){
controller.toggleOpen($scope.section);
};
}
};
}
//指令的我的模板(此IF加载)
/**
*@ngInject
*/
函数htmlMenuDirectivaGrupo($templateCache){
警报(“hello htmlmenu”);
$templateCache.put('partials/menuToogle.tmpl.html',
“\n”+
“{section.name}}}\n”+
“\n”+
“\n”+
“
    \n”+ “
  • \n”+ “\n”+ “
  • \n”+ “
\n”+ ''); } })();
为什么不加载两个函数?有错误的代码或声明? 谢谢

用这样的东西

返回{
限制:'E',
范围:{
节:'='
},
控制器:['$scope',函数($scope){..}],
链接:函数(作用域、元素、属性){..},
模板:“”+
''+
' '
};

问题是,我的指令在.html中没有正确声明什么 这是我们应该称之为正常工作的方式

指令

  (function () {

 angular.module('menuLeft', []);

angular.module('menuLeft')
    .run(htmlMenuDirectivaGrupo)
    .directive('menuGrupo', ctrlMenuDirectivaGrupo);


//MY MENU DIRECTIVE (THIS NOT LOAD)
//MENU GRUPO
/**
 * @ngInject
 */
function ctrlMenuDirectivaGrupo($timeout) {
    alert('hello ctrlmenu');

    return {
        scope: {
            section: '='
        },
        templateUrl: 'partials/menuToogle.tmpl.html',
        link: function ($scope, $element) {
            var controller = $element.parent().controller();

            $scope.isOpen = function () {
                return controller.isOpen($scope.section);
            };
            $scope.toggle = function () {
                controller.toggleOpen($scope.section);
            };
        }
    };


}



 //MY TEMPLATE FOR DIRECTIVE (THIS IF LOAD)
/**
 * @ngInject
 */
function htmlMenuDirectivaGrupo($templateCache) {
alert('hello htmlmenu');
    $templateCache.put('partials/menuToogle.tmpl.html',
        '<md-button class="md-button-toggle"\n' +
        '  ng-click="toggle()"\n' +
        '  aria-controls="docs-menu-{{section.name | nospace}}"\n' +
        '  flex layout="row"\n' +
        '  aria-expanded="{{isOpen()}}">\n' +
        '  {{section.name}}\n' +
        '  <span aria-hidden="true" class=" pull-right fa fa-chevron-down md-toggle-icon"\n' +
        '  ng-class="{\'toggled\' : isOpen()}"></span>\n' +
        '</md-button>\n' +
        '<ul ng-show="isOpen()" id="docs-menu-{{section.name | nospace}}" class="menu-toggle-list">\n' +
        '  <li ng-repeat="page in section.pages">\n' +
        '    <menu-link section="page"></menu-link>\n' +
        '  </li>\n' +
        '</ul>\n' +
        '');


}

})();
(函数(){
角度模块('menuLeft',[]);
角度.module('menuLeft')
.run(htmlmenuidirectivagrupo)
.指令(“menuGrupo”,ctrlMenuDirectivaGrupo);
//我的菜单指令(此命令不加载)
//菜单GRUPO
/**
*@ngInject
*/
函数ctrlMenuDirectivaGrupo($timeout){
警报(“hello ctrlmenu”);
返回{
范围:{
节:'='
},
templateUrl:'partials/menuToogle.tmpl.html',
链接:函数($scope$element){
var controller=$element.parent().controller();
$scope.isOpen=函数(){
返回控制器.isOpen($scope.section);
};
$scope.toggle=函数(){
controller.toggleOpen($scope.section);
};
}
};
}
//指令的我的模板(此IF加载)
/**
*@ngInject
*/
函数htmlMenuDirectivaGrupo($templateCache){
警报(“hello htmlmenu”);
$templateCache.put('partials/menuToogle.tmpl.html',
“\n”+
“{section.name}}}\n”+
“\n”+
“\n”+
“
    \n”+ “
  • \n”+ “\n”+ “
  • \n”+ “
\n”+ ''); } })();
HTML


我推荐阅读


谢谢大家。

像这样尝试
angular.module('menuLeft',[]).run(htmlmenuidirectivagrupo).directive('ctrlmmenuidirectivagrupo',ctrlmenuidirectivagrupo')在这个模块中,我执行了几个角度.module('menuLeft').run().directions();此外,这与加载后调用相同。是的,您可以按照这样的链接,创建plunker或fiddle来优化代码。代码非常轻。这也与我展示的相同。我的问题是,该指令没有收费
  (function () {

 angular.module('menuLeft', []);

angular.module('menuLeft')
    .run(htmlMenuDirectivaGrupo)
    .directive('menuGrupo', ctrlMenuDirectivaGrupo);


//MY MENU DIRECTIVE (THIS NOT LOAD)
//MENU GRUPO
/**
 * @ngInject
 */
function ctrlMenuDirectivaGrupo($timeout) {
    alert('hello ctrlmenu');

    return {
        scope: {
            section: '='
        },
        templateUrl: 'partials/menuToogle.tmpl.html',
        link: function ($scope, $element) {
            var controller = $element.parent().controller();

            $scope.isOpen = function () {
                return controller.isOpen($scope.section);
            };
            $scope.toggle = function () {
                controller.toggleOpen($scope.section);
            };
        }
    };


}



 //MY TEMPLATE FOR DIRECTIVE (THIS IF LOAD)
/**
 * @ngInject
 */
function htmlMenuDirectivaGrupo($templateCache) {
alert('hello htmlmenu');
    $templateCache.put('partials/menuToogle.tmpl.html',
        '<md-button class="md-button-toggle"\n' +
        '  ng-click="toggle()"\n' +
        '  aria-controls="docs-menu-{{section.name | nospace}}"\n' +
        '  flex layout="row"\n' +
        '  aria-expanded="{{isOpen()}}">\n' +
        '  {{section.name}}\n' +
        '  <span aria-hidden="true" class=" pull-right fa fa-chevron-down md-toggle-icon"\n' +
        '  ng-class="{\'toggled\' : isOpen()}"></span>\n' +
        '</md-button>\n' +
        '<ul ng-show="isOpen()" id="docs-menu-{{section.name | nospace}}" class="menu-toggle-list">\n' +
        '  <li ng-repeat="page in section.pages">\n' +
        '    <menu-link section="page"></menu-link>\n' +
        '  </li>\n' +
        '</ul>\n' +
        '');


}

})();
  <menu-grupo></menu-grupo>