从ng-init传递数组到范围函数?

时间:2016-04-22 13:44:08

标签: javascript angularjs

我正在尝试定义一个可用于在select上设置默认值的函数。正确填充了选择,但传递给函数的值未定义。我该如何做到这一点?

这是我的HTML。

        <div id="Option" class="form-group" ng-show="Options.length > 0">
            <div class="col-sm-1 col-md-1 col-lg-2" />
            <label class="control-label col-sm-3 col-md-3 col-lg-2">Options</label>
            <div class="col-sm-2 col-md-2 col-lg-2" >
                <select name="OptionSelect" id="OptionSelect" class="form-control"
                        ng-model="OptionSelectedId"
                        ng-init="OptionSelectedId = getDefaultOption(Options)" 
                        ng-options="Option.objectKey as Option.label for Option in Options" required >
                </select>
            </div>
        </div>

这是控制器范围上的功能

$scope.getDefaultOption=function(arr){
        return arr=$.grep(arr, function (dropdownObj) {
            return dropdownObj.default === true;
        })[0];  

}

1 个答案:

答案 0 :(得分:2)

试试这个:

ng-init="getDefaultOption(Options)"

$scope.getDefaultOption=function(arr){
        arr=$.grep(arr, function (dropdownObj) {
            $scope.OptionSelectedId = dropdownObj.default === true;
        })[0];  

}