我正在尝试通过指令创建一个下拉框而不用创建一个单独的控制器。 这是我的代码:
的index.html
<dropdown option="myoptions" />
的script.js
serviceModule.directive('dropdown',function() {
return {
restrict: 'EA',
replace:true,
scope: {
options:'='
},
template: '<select ng-options="opt in myoptions"></select>',
controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
$scope.myoptions = ['1','2','3'];
}],
}
});
该脚本既不会产生错误,也不会在下拉列表中显示任何选项。 你能解释一下我做错了吗?
提前致谢。
答案 0 :(得分:2)
ng-options
需要label for value in array
格式comprehension expression。您需要为ng-model
添加select
才能正常工作。
template: '<select ng-model="choice" ng-options="opt for opt in myoptions"></select>',
controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
$scope.choice;
$scope.myoptions = ['1','2','3'];
}],
这是一个工作的掠夺者:http://plnkr.co/edit/8a6gwpVnMfvXxZzvQBOs?p=preview