我使用指令创建了一个自定义<select>
下拉元素,该指令具有selecting
属性,该指令用于从控制器中提取正确的数据以填充选项列表。我想知道这是否适合使用AngularJS的不同部分。我是Angular的新手,但这就是我完成这项任务的方式。
在需要我的select
版本的网页的HTML部分中,这就是所有需要编写的内容:
<sliding-select selecting="areas"></sliding-select>
在控制器中,主对象上有一个名为areas
的对应变量,其中包含一个名为options
的数组,其成员应该是区域选择的选项。
这是指令的一部分,它接收数据并为areas
数组的每个成员创建一个选项元素:
.directive('slidingSelect', function($timeout) {
return {
restrict: 'E',
compile: function(element, attrs) {
var selecting = attrs.selecting;
// ng-repeated options come from selecting attr
var dropDownList = $('<div class="sliding-select-list"></div>');
dropDownList.append('<div class="sliding-select-option" ng-repeat="item'+
' in home.'+selecting+'.options">{{item.name}}</div>');
element.append(dropDownList);
}
};
我有点担心创建一个元素,其ng-repeat短语通过从中创建一个字符串来使用变量名称,这似乎很麻烦。也许Angular社区首选这个问题的方法完全不同?