是否可以在自定义指令中使用理解表达式

Is it possible to use comprehension expressions in custom directives?

本文关键字:表达式 指令 自定义 是否      更新时间:2023-09-26

有没有一种方法可以使用类似于ng-options中的理解表达式来创建一组单选按钮或复选框?

app.js

angular
    .module("app", [])
    .controller("controller", ["$scope", function($scope){
        $scope.selectedRadio = null;
        $scope.selectedCheckboxes = [];
        $scope.radioOptions = [
                    //some options...
             ];
        $scope.checkboxOptions = [
                    //some options...
             ];
    }]);

index.html

<div data-ng-app="app" data-ng-controller="controller>
    <radio-group ng-radios="option as option.option_label
                            for option in radioOptions
                            track by option.option_id"
                 ng-model="selectedRadio"
                 ng-selected="option.selected" />
    <checkbox-group ng-checkboxes="option as option.option_label
                                   for option in checkboxOptions
                                   track by option.option_id"
                    ng-model="selectedCheckboxes"
                    ng-selected="option.selected"  />
</div>

我希望避免使用复杂的正则表达式来支持所有形式的理解表达式。

ngOptions(以及例如ngRepeat)之所以提供自定义表达式语法,是因为它的编码支持它。

要支持第三方指令中的自定义表达式,应该使用regexp手动解析属性值——从现有指令中借用或从头开始编写。

除了$interpolate$parse服务支持的基本Angular表达式外,Angular中没有内置的表达式魔术。