AngularJS指令不起作用

Ped*_*lva 9 javascript angularjs

我在我的一个项目中使用AngularJS,我想尝试创建指令.我已经遵循了几个教程,我无法看到我做错了.即使最糟糕的是,它不会显示任何错误或警告消息,但它也不会执行指令的功能.现在,我的代码就是这样:

angular.module('components', []).directive('ngxOnshow', function() {
   return {
          restrict: 'A',
          link: function(scope, element, attrs){
                        console.log("hello world")
                        //Resto do código da função
          }  
   };
});
var module = angular.module('app', ['components']);
Run Code Online (Sandbox Code Playgroud)

在HTML页面的主体中我有这个:

<body ng-autobind ng-app="app">
Run Code Online (Sandbox Code Playgroud)

但是,当我使用该指令时,它不起作用.

<div ng-show="showApp == true" ngx-onshow="showAppBar()">
</div>
Run Code Online (Sandbox Code Playgroud)

应用程序的其余部分工作正常,绑定,默认指令,除此之外的所有内容.也许我错过了什么?

谢谢,Scorch :)

Mar*_*cok 11

使用'&'允许指令执行父作用域中定义的表达式/函数.$观察插值的隔离范围属性(即,用包含的'@'定义的属性{{}})来确定它何时发生变化:

myApp.directive('ngxOnshow', function () {
  return {
    restrict: 'A',
    scope: {
      showApp: '@',
      ngxOnshow: '&'
    },
    link: function (scope, element, attrs) {
      console.log("inside link function")
      attrs.$observe('showApp', function (newValue) {
        newValue === "true" && scope.ngxOnshow()
      })
    }
  };
});
Run Code Online (Sandbox Code Playgroud)

newValue与"true"not 进行比较,true因为内插值总是字符串.

HTML:

<div ng-show="showApp == true" show-app="{{showApp}}" ngx-Onshow="showAppBar()">
Run Code Online (Sandbox Code Playgroud)

小提琴.


set*_*tec 6

大多数指令错误都显示在控制台中,只需启用日志记录:

app.config(function($logProvider){
    $logProvider.debugEnabled(true);
});
Run Code Online (Sandbox Code Playgroud)

因此,您无需猜测为什么指令不起作用.