Javascript 角度ng类为';t更新
有人能帮我理解为什么我的Javascript 角度ng类为';t更新,javascript,angularjs,Javascript,Angularjs,有人能帮我理解为什么我的ng click没有更新类吗 heading.onClick()更新控制器的isOpen属性。如果为false,则类不会删除折叠的属性 .... (this is inside a controller aliased `heading`) <div ng-class="{'collapsed': !heading.isOpen}" ng-click="heading.onClick()"></div> directive: ... tem
ng click
没有更新类吗
heading.onClick()
更新控制器的isOpen
属性。如果为false,则类不会删除折叠的属性
.... (this is inside a controller aliased `heading`)
<div ng-class="{'collapsed': !heading.isOpen}" ng-click="heading.onClick()"></div>
directive:
...
templateUrl: '/that/code/above',
controllerAs: 'heading',
controller: function(){
var self = this;
self.isOpen = false;
self.onClick = function(){
self.isOpen = !self.isOpen;
};
}
。。。。(这在别名为“heading”的控制器内)
指令:
...
templateUrl:“/that/code/over”,
controllerAs:'标题',
控制器:函数(){
var self=这个;
self.isOpen=false;
self.onClick=function(){
self.isOpen=!self.isOpen;
};
}
在您的场景中,只有几件事出错
您的报价可能需要转义,因为您是交替的
在单倍和双倍之间切换几次,或者您可能需要使用template而不是templateUrl
如果您使用的是angular 1.3+,而不是将self指定给此
可以使用scope:true属性,并使用“this”
函数myDirective(){
返回{
限制:“AE”,
模板:“点击我”,
范围:正确,
控制器:函数(){
this.isOpen=false;
this.onClick=函数(){
this.isOpen=!this.isOpen;
//在某些情况下,您可能需要调用$apply(),以使其消化更改。
//例如,如果通过非角度单击更改等参线,则角度将不知道
//在调用此函数之前更新类。$apply()
//这个。$apply();
};
},
controllerAs:“标题”
};
}
var app=angular.module('app',[])
.指令('myDirective',[myDirective])代码>
。已折叠{
颜色:红色;
}
“当它为false时,类不会删除折叠的属性”-这是因为您有!标题.isOpen
。打字错误?我看不到你的指令在div.上使用。。打字错误?@UlukBiy,据我所知,
是指令的一部分template@NewDev你是对的。请发布一个plunkr或jsfiddle。