【发布时间】:2023-03-17 16:17:01
【问题描述】:
尽我所能,我无法在异步完全工作的情况下获得角度选择。我可以让它大部分正常工作 - 但不是所有的。
想象一下控制器的样子:
$scope.stuff = {};
$scope.stuff.blah = "SOME_KEY";
External.list().then( function (data ) {
$scope.stuff.sourceSystems =data;
});
然后这会很好地显示值
<select ng-model="stuff.blah">
<option ng-repeat="(key, value) in stuff.sourceSystems | orderBy" value="{{key}}">{{key}}</option>
</select>
但由于某种原因,这在开始时有一个额外的空白选项:
<select ng-model="stuff.blah" ng-options="key for (key, value) in stuff.sourceSystems | orderBy"></select>
但是 - 在这两种情况下,我设置为 SOME_KEY 的现有值都没有被选中。在第一种情况下,列表中的第一个值被选中 - 在第二种情况下,一个空白值被选中。在这两种情况下 - 基础绑定值都是 SOME_KEY。但是 - 一旦我实际更改所选值,通过将其下拉 - 绑定值(等等) - 正确更改。
这是在 bindToController 设置为 true 的指令中。
我做错了什么?
【问题讨论】:
-
这就是我在第二个示例中所做的 - 实际上 - 我刚刚找到了一种解决方法 - 如果我使用 ng-options 并在承诺处理程序中绑定到完整对象 - 即 $scope.stuff.blah =数据 [“SOME_KEY”] 它正在工作 - 但似乎有点 hack :(
-
您确定
data中的响应没有空键吗?如果您可以从列表中发布您的回复,我们将更容易帮助调试。
标签: javascript angularjs angular2-directives