我使用dateDisable
变量来隐藏div date-warp
,按钮'添加一个',可以将dateDisable
变量值更改为False
,但按钮'添加日期'无法将变量更改为True
。我怎样才能让代码工作?谢谢。
<div ng-controller="addDateControl">
<a href="#" ng-click="showDate($event)">add one</a>
<div clss="date-warp" ng-hide="dateDisable">
<a href="#" vote-select-list>add date</a>
</div>
</div>
var app = angular.module('GroupApp',[]);
app.controller('addDateControl',
function ($scope) {
$scope.dateDisable = true;
$scope.showDate = function ($event) {
$event.preventDefault();
$scope.dateDisable = !$scope.dateDisable;
};
})
.directive('voteSelectList', [ function () {
return {
restrict: 'A',
link: function (scope, iElement, iAttrs) {
iElement.bind('click', function(event) {
event.preventDefault();
});
}
};
}]);
答案 0 :(得分:0)
你介意把问题放在Plunker吗?
一旦你这样做,我们就可以自由地使用代码。我从高层看到了两个错误。
<div clss="date-warp" ng-hide="dateDisable">
您的班级名称缺少&#34; a&#34; (scope, iElement, iAttrs)
,(scope, element, attrs)
从高层来看,这些可能没有做任何事情,但它们很可能是导致错误的原因。有关自定义指令属性的更多信息,请查看AngularJS文档here
希望有所帮助!祝你好运!
答案 1 :(得分:0)
你应该可以在你的指令中做一些事情,比如
scope.$emit("addedDate");
scope.$apply();
在点击装订中,在控制器中执行类似
的操作$scope.$on("addedDate", function(){
$scope.dateDisable = true;
});