基于Angular指令中的可选参数提取数据



我有一个显示许可列表的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;
            });
        }
    });

最新更新