2

我有一个使用 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();
}])

有什么想法吗?谢谢,杰森

4

1 回答 1

2

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

控制器

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

控制器作为 Todd 座右铭的信息

于 2015-06-30T19:07:49.777 回答