我有一个页面上显示的行程列表。每个行程都有一个选择按钮。这个选择按钮是一个指令。
.directive('itinerarySelectBtn', ['itineraryFactory',
function(itineraryFactory){
return {
restrict: 'E', // defining the container as an element
scope: {
itinerary: '=', // html element we are injecting this directive too
},
replace: true,
templateUrl: '/content/partials/directives/results/results-list.html',
link: function(scope, element, attrs){
element.on('click' , function(){
itineraryFactory.itinerary = scope.itinerary;
});
}
}
}
])
除了通过范围接收行程对象外,此按钮不执行任何其他操作:' ='然后将我的itineraryFactory分配给行程对象。我这样做,所以我可以在我的itineraryFactory中使用我的getter和setter并将其拉入我的控制器。 在我的控制器中:
$scope.itineraries = itineraryFactory.getItinerary();
我的问题是:这是否过度,这应该是一个指令吗?或者我可以在我的控制器中使用$ scope.function并执行相同的操作。该按钮可能只是ng-repeat的一部分,列出了页面上的行程。
我觉得在我的控制器中有一个setItinerary()函数基本上是相同的,可以通过按下按钮来执行。
思想?
此致
答案 0 :(得分:1)
您可以在模板中执行所有操作。
假设您要从$scope.chosenItinerary
$scope.itineraries
<div ng-repeat="itinerary in itineraries">
<button ng-click="chosenItinerary = itinerary">Pick this one!</button>
</div>