考虑一下这个小提琴:小提琴 1当您选择一个日期时,您会注意到它上面的文本没有更新。这是因为我必须在列表中使用一个对象,例如:Fiddle 2(简化版)。
但是,另一方面,这确实有效,没有点:Fiddle 3
有人可以解释fiddle 1和fiddle 3有什么区别吗?我读过关于原型继承(unerstanding scopes),但我不理解这种行为。
小提琴3:
HTML:
<div ng-controller="MyCtrl">
Hello, {{name}}!
<button ng-click="visible = !visible">Toggle</button>
<div ng-show="visible">
Some content
<sample visible="visible"></sample>
</div>
</div>
Javascript:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.name = 'Superhero';
$scope.visible = true;
}
myApp.directive("sample", function(){
return {
restrict: 'E',
template: '<span ng-click="hide()" style="cursor: pointer;">X</span>',
scope:{
visible: '='
},
link: function(scope, element, attributes){
scope.hide = function(){
console.log(scope.visible);
scope.visible = false;
}
}
}
});