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