Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义指令中Angularjs作用域的用法_Javascript_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Javascript 自定义指令中Angularjs作用域的用法

Javascript 自定义指令中Angularjs作用域的用法,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我试图通过指令创建一个下拉框,而不创建单独的控制器。 这是我的密码: index.html <dropdown option="myoptions" /> script.js serviceModule.directive('dropdown',function() { return { restrict: 'EA', replace:true, scope: { options:'='

我试图通过指令创建一个下拉框,而不创建单独的控制器。 这是我的密码:

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'];
        }],
    }
});
serviceModule.directive('dropdown',function(){
返回{
限制:“EA”,
替换:正确,
范围:{
选项:'='
},
模板:“”,
控制器:['$scope','$element','$attrs',函数($scope,$element,$attrs){
$scope.myoptions=['1','2','3'];
}],
}
});
该脚本既不会产生错误,也不会在下拉列表中显示任何选项。 你能解释一下我做错了什么吗


提前感谢。

ng选项
要求数组中的值采用
标签形式。您需要添加
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'];
}],
模板:“”,
控制器:['$scope','$element','$attrs',函数($scope,$element,$attrs){
$scope.choice;
$scope.myoptions=['1','2','3'];
}],

这是一个有效的例子:

您可能需要显示更多的代码。很难确切知道发生了什么。您似乎试图将选项传递到指令中,但随后您还在指令的控制器中定义它们。这是我仅有的代码。我需要在指令中定义选项。您在哪里定义主应用程序模块?主模块是否包括serviceModule?请显示整个index.html。当您将options属性设置为“myoptions”并将其绑定到指令的隔离范围时,您不需要在指令的控制器中定义选项。非常感谢您的解释。正是我需要的。