【发布时间】:2014-01-29 03:35:41
【问题描述】:
我一直试图弄清楚这一点并进行了一些搜索,但我发现的结果似乎总是解决指令和控制器之间发生的问题。
我在指令中有问题。我认为我没有正确理解范围。
我有一个如下所示的指令:
mb.directive("plainText", function() {
return {
restrict: 'E',
scope: {
value: "@",
},
templateUrl: 'plainText.html',
link: function(scope, element, attrs){
scope.view = false;
element.bind("click", function() {
if ( scope.view == false ) {
scope.view = true;
console.log(scope.view);
} else {
scope.view = false;
console.log(scope.view);
}
})
scope.value = attrs.value;
}
}
})
还有一个这样的 HTML 模板:
<div>{{value}}</div> // this part of the directive always stays visible
<div ng-show="{{view}}"> // THIS LINE NEEDS TO RESPOND TO THE CLICK
<input type="text" ng-model="value">
<br/>
<div class="btn btn-default" ng-click="save()">Save</div>
<div class="btn btn-default" ng-click="cancel()">Cancel</div>
</div>
我的控制台日志显示单击事件被范围值触发,但“视图”并未应用于需要显示和隐藏的 div。
谁能解释我做错了什么?
【问题讨论】:
标签: javascript jquery angularjs