我正在尝试定义一个指令以在回答问题时显示复选标记。
questModule.directive('showCheckmarkOnDone', function () {
return {
transclude: true,
template: "<div ng-transclude></div><img src='img/checkmark.svg' " +
"ng-show='scope.questions[type][number-1].done' " +
"class='checkmark' style='height: {{height}}px; width: {{height}}px;'>",
link: function (scope, element, attrs) {
scope.height = $(".app").height()/12;
scope.number = attrs.number;
scope.type = attrs.type;
}
};
});
该scope.questions[type][number-1].done
页面存在于我的控制器中,当我按下完成按钮时,我可以看到它正在正确更新。但是,该指令不会注册更改。我尝试在链接函数中放置一个 $watch - 这也没有帮助。我想我对如何让我的指令范围与我的控制器范围很好地配合有点困惑 - 关于如何让这个指令访问存在于外部控制器中的对象的任何想法?( scope.questions
)