【发布时间】:2013-08-02 19:30:38
【问题描述】:
考虑这个小提琴:Fiddle 1 当你选择一个日期时,你会注意到它上面的文本没有更新。这是因为我必须在列表中使用一个对象,例如:Fiddle 2(简化)。
但是,另一方面,这确实有效,没有点:Fiddle 3
有人能解释一下小提琴 1 和小提琴 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;
}
}
}
});
【问题讨论】:
-
您真的打算将第一个
</div>放在Hello ...行之后吗?这意味着 HTML 的其余部分超出了 MyCtrl 的范围。 -
@MarkRajcok 你是对的。我已经把所有东西都放在了控制器中。
标签: angularjs angularjs-directive angularjs-scope