我有一个显示许可列表的angular指令。此指令将在两个地方使用:车辆屏幕和许可证屏幕。
在车辆屏幕上,它将显示特定车辆的许可证。在许可屏幕上,它将显示所有许可。
为了完成这一点,我将在指令中使用一个属性车辆。我面临的问题是,我想根据是否提供了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;
});
}
});
这很大程度上取决于你的dataService.getPermits
是如何工作的。如果这是一个简单的情况,当使用该参数时,它只获得一辆车的许可,否则获得所有许可,那么你可以像下面的代码那样做(当没有提供车辆时,值未定义)。
$attrs.$observe('vehicle', function (value) {
dataService.getPermits(value).then(function (data) {
$scope.permits = data;
});
}
});