Angularjs 如果更改指令的名称,则自定义指令不起作用

Angularjs 如果更改指令的名称,则自定义指令不起作用,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我尝试实现一个窗口大小自定义指令,效果很好 问题是,只有当我使用指令名作为resize时,它才起作用。 否则,如果我使用不同的名称作为WindowsSize,则仅在页面刷新时触发 这是控制器代码 var app = angular.module('miniapp', []); function AppController($scope) { /* Logic goes here */ } > > app.directive('windowsize', function

我尝试实现一个窗口大小自定义指令,效果很好

问题是,只有当我使用指令名作为resize时,它才起作用。 否则,如果我使用不同的名称作为WindowsSize,则仅在页面刷新时触发

这是控制器代码

  var app = angular.module('miniapp', []);

function AppController($scope) {
    /* Logic goes here */
}

> > app.directive('windowsize', function($window){
>         return function(scope,element){
>             var w=angular.element($window);
>             scope.getWindowDimension=function(){
>                 return{
>                      'w': w.width()
>                 };
>             };
>              scope.$watch(scope.getWindowDimension, function (newValue, oldValue) {
>              scope.windowWidth = newValue.w;
>              console.log( scope.windowWidth);
> 
>         }, true);
>               w.bind('windowsize', function () {
>             scope.$apply();
>         });
>        };
>      })



html code
<div ng-app="miniapp" ng-controller="AppController"  windowsize>
    window.height: {{windowHeight}}
    <br />window.width: {{windowWidth}}
    <br />
</div>
var-app=angular.module('miniapp',[]);
函数AppController($scope){
/*逻辑就在这里*/
}
>>应用程序指令('WindowsSize',函数($window){
>返回函数(范围、元素){
>var w=角度元素($window);
>scope.getWindowDimension=函数(){
>返回{
>“w”:w.宽度()
>                 };
>             };
>scope.$watch(scope.getWindowDimension,函数(newValue,oldValue){
>scope.windowWidth=newValue.w;
>console.log(scope.windowWidth);
> 
>(对),;
>w.bind('windowsize',函数(){
>作用域:$apply();
>         });
>        };
>      })
html代码
window.height:{{windowHeight}}

window.width:{{windowWidth}
var-app=angular.module('miniapp',[]);
函数AppController($scope){
/*逻辑就在这里*/
}
应用程序指令('WindowsSize',函数($window){
返回函数(范围、元素){
var w=角度元素($window);
scope.getWindowDimension=函数(){
返回{
“w”:w.宽度()
};
};
scope.$watch(scope.getWindowDimension,函数(newValue,oldValue){
scope.windowWidth=newValue.w;
console.log(scope.windowWidth);
},对);
w、 绑定('resize',函数(){
作用域:$apply();
});
};
})

html代码
window.height:{{windowHeight}}

window.width:{{windowWidth}
var-app=angular.module('miniapp',[]);
函数AppController($scope){
/*逻辑就在这里*/
}
应用程序指令('WindowsSize',函数($window){
返回函数(范围、元素){
var w=角度元素($window);
scope.getWindowDimension=函数(){
返回{
“w”:w.宽度()
};
};
scope.$watch(scope.getWindowDimension,函数(newValue,oldValue){
scope.windowWidth=newValue.w;
console.log(scope.windowWidth);
},对);
w、 绑定('resize',函数(){
作用域:$apply();
});
};
})

html代码
window.height:{{windowHeight}}

window.width:{{windowWidth}

刷新前出现任何错误?您应该尝试w.bind('resize'),而不是w.bind('windowsize')。我没有收到任何错误。如果我替换指令名windowsize来调整大小,它就可以正常工作@saechowdary为什么我不能使用windowsize而不是resize@Ashishpanchal@SanjayHp:您正在绑定一个事件,我想没有像WindowsSize这样的事件,这就是原因。希望它能对您起作用。刷新之前您会遇到任何错误吗?您应该尝试w.bind('resize'),而不是w.bind('windowsize')。我没有遇到任何错误。如果我替换指令名windowsize来调整大小,它就可以正常工作@saechowdary为什么我不能使用windowsize而不是resize@Ashishpanchal@SanjayHp:您正在绑定一个事件,我想没有像WindowsSize这样的事件,这就是原因。希望它对你有用。