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

时间:2016-03-24 19:58:54

标签: javascript angularjs expression

有没有办法使用类似于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>

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

1 个答案:

答案 0 :(得分:0)

因为ngOptions(以及例如ngRepeat)提供自定义表达式语法的原因是because it was coded to support it

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

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