我試圖定義一個指令,以便在問題得到解答時顯示覆選標記。在指令模板中使用ng-show
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
)
謝謝,但我刪除,並沒有什麼改變。我認爲這樣做可以讓指令的各個實例成爲他們自己的範圍,而不是在指令的所有副本中共享一個範圍。 –
啊,我明白了。你不應該在模板中使用'scope' ......它暗示着:http://jsfiddle.net/EZy2F/1/ – Langdon
謝謝...我還能夠構建一個可用的JSFiddle(http:// jsfiddle .net/nicolethenerd/3U5WF /) - 不幸的是,我仍然不知道我實際項目中的代碼有什麼問題。 –