使用ng-options作为控制器的符号时选择

时间:2015-06-30 19:05:21

标签: javascript angularjs angularjs-controller angularjs-ng-options angularjs-controlleras

我有一个选择使用ng-options来定义在ng-controller指令中仅使用控制器名称时工作正常的选项。问题是当我添加"作为选项"到ng-controller它不再有效(没有选项)。

不能工作:

<div ng-controller="optionsCtrl as options">
    <select ng-model="options.oxygenSource" ng-options="item.name for item in options.oxygenSources"></select><br />
</div>

使用:

<div ng-controller="optionsCtrl">
    <select ng-model="oxygenSource" ng-options="item.name for item in oxygenSources"></select>
</div>

这是我的控制器,如果它有帮助:

.controller('optionsCtrl', ['$scope', 'adminServ', function ($scope, adminServ) {
    // User selections
    $scope.oxygenSource = null;

    $scope.oxygenSources = adminServ.getOxygenSources();
}])

有什么想法?谢谢, 杰森

1 个答案:

答案 0 :(得分:2)

使用controller语法时,应更改controllerAs。控制器应使用this关键字而不是$scope

<强>控制器

.controller('optionsCtrl', ['$scope', 'adminServ', function ($scope, adminServ) {
    var options = this;
    options.oxygenSource = null;
    options.oxygenSources = adminServ.getOxygenSources();
}])

ControllerAs article获取托德格言的信息