从Directives控制器添加选择框

时间:2014-06-20 09:26:01

标签: javascript angularjs ng-options

我正在尝试动态添加指令中的选择框。相同的ng选项在没有指令的情况下完美地工作,但是从指令它给出空列表请检查下面的小提琴。

我不想把selectbox放在Directive模板中......我只需要从控制器中添加它们。

小提琴:: http://jsfiddle.net/NfPcH/2009/

代码:

<select ng-model="selectedOption" ng-options="option for option in [1,2,3,45,6,8,9,7]"></select>

1 个答案:

答案 0 :(得分:1)

解决问题的正确方法是使用指令compile函数(读取'Compilation process, and directive matching' and 'Compile function')在编译之前修改元素。

<强> Working Demo

app.directive('hello', function () {
    return {
        restrict: 'E',
        scope: {},
        template: 'hello world',
        controller: function ($scope, $element, $attrs, $compile) {
            var el = angular.element('<select ng-model="selectedOption" ng-options="option for option in [1,2,3,45,6,8,9,7]"></select>');
            $compile(el)($scope);
            $element.append(el);
        },
    }
});