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)
小提琴.
大多数指令错误都显示在控制台中,只需启用日志记录:
app.config(function($logProvider){
$logProvider.debugEnabled(true);
});
Run Code Online (Sandbox Code Playgroud)
因此,您无需猜测为什么指令不起作用.
| 归档时间: |
|
| 查看次数: |
33559 次 |
| 最近记录: |