問題のディレクティブはこの男です: 属性に基づくディレクティブの動的テンプレート?
とにかく、これが私が達成しようとしていることです。
この<titlebar>
ディレクティブは、 という属性を取ることができますedit-button
。これが存在する場合、ボタンがクリックされたときに、コントローラーに $scope 変数を設定して、ボタンの表示/非表示を切り替えて項目を削除/編集したいと考えています。
たとえば$scope.currentlyEditting = true;
、ディレクティブで設定した場合、これをコントローラーに関連付けてから、ng-show
コントロールの表示/非表示に使用します。そのデータをコントローラーに取り込む方法がわかりません。
titleBar ディレクティブ:
robus.directive("titlebar", function() {
return {
restrict: "E",
template: "<header class='bar-title' ng-class='{\"sub-view\": view}'>"+
"<a class='button' ng-click='goBack()' ng-show='back'><i class='icon-arrow-left'></i> Back</a>" +
"<h1 class='title' ng-transclude>" +
"<span class='sub-title' ng-show='view'>{{view}}</span></h1>" +
"<a class='button' ng-click='showEdit()' ng-show='edit'>Edit</a>" +
"</header>",
scope: {
view: '@view',
edit: '@editButton',
back: '@backButton'
},
transclude: true,
replace: true,
link: function ($scope, $element, attrs, ctrl) {
// $scope.$apply();
},
controller: function($scope, $element, $attrs, $location, $routeParams) {
/* simple back button implementation */
$scope.goBack = function() {
history.back(-1)
}
// $scope.showEdit = function() {
// $scope.currentlyEditting = true;
// }
}
}
});