javascript - 在指令中使用异步进行 Angular Select

标签 javascript angularjs angular2-directives

尽我所能,我无法获得异步完全工作的 Angular 选择。我可以让它大部分工作 - 但不是全部。

想象 Controller 看起来像:

 $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 的现有值 - 被选中。在第一种情况下,选择列表中的第一个值 - 在第二种情况下,选择空白值。在这两种情况下 - 底层绑定(bind)值都是 SOME_KEY。然而 - 一旦我实际更改所选值,通过将其下拉 - 绑定(bind)值(废话) - 正确更改。

这是一个将 bindToController 设置为 true 的指令。

我做错了什么?

最佳答案

$scope.stuff.blah <- 有字符串键

,在 ng-repeat 中,重复值是对象(包括 Angular 哈希键)

try this, and read ng-options

 <select ng-model="stuff.blah" ng-options="system.key as system.key for system in stuff.sourceSystems | orderBy">
 </select>

关于javascript - 在指令中使用异步进行 Angular Select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37452615/

相关文章:

javascript - 在 ExtJS XTemplate 中调用函数

javascript - 如何正确退出 JavaScript 中的循环并防止其进一步迭代?

angularjs - 如何从更新的父级列表中更新子组件

Angular 4 无法绑定(bind)到 <property> 因为它不是 <component> 的已知属性

angular - formControlName 必须与父 formGroup 指令一起使用

javascript - nodejs 中 JIMP 中的文件签名无效

javascript - D3.js 动画更新

javascript - 在 Angular js 中使用 Tooltipster Jquery 插件

Angularjs试图运行 Protractor

javascript - Angular 2 中的指令执行顺序