#angularjs #angularjs-directive
#angularjs #angularjs-директива
Вопрос:
У меня есть директива angular, которая отображает список разрешений. Эта директива будет использоваться в двух местах: на экране транспортного средства и на экране разрешений.
На экране транспортного средства будут показаны разрешения для этого конкретного транспортного средства. На экране разрешений будут показаны все разрешения.
Для достижения этой цели я собирался использовать атрибут vehicle в директиве. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу извлекать данные на основе того, был ли предоставлен атрибут vehicle, и если да, извлекать на основе значения vehicle.
Вот фрагмент того, что у меня есть, и он работает, когда указан атрибут vehicle, но как мне заставить его работать в случае, когда это не так?
angular.module("app").directive('etVehiclePermits', function () {
return {
restrict: "E",
templateUrl: "app/vehicles/permits/etVehiclePermits.html",
scope: {
vehicle: '@'
},
controller: function ($scope, $attrs, dataService) {
$attrs.$observe('vehicle', function (value) {
if (value != '') {
dataService.getPermits(value).then(function (data) {
$scope.permits = data;
});
}
});
Ответ №1:
Это очень сильно зависит от того, как вы dataService.getPermits
работаете. Если это простой случай, когда он получает только разрешения для транспортного средства, когда используется этот параметр, и получает все разрешения в противном случае, тогда вы можете сделать что-то вроде приведенного ниже кода (значение не определено, если транспортное средство не предоставлено).
$attrs.$observe('vehicle', function (value) {
dataService.getPermits(value).then(function (data) {
$scope.permits = data;
});
}
});