ng-options不更新选择标记

时间:2016-12-01 11:27:48

标签: angularjs

在从我的应用程序中获取的以下代码中,下拉列表未使用范围数据进行更新。我怎样才能做到这一点?我需要将父控制器的下拉选项传递给子控制器。我收到[$ injector:modulerr]错误。

<div ng-app="myApp" ng-controller="parentCtrl as pt">
  <button ng-click="pt.callChild()">Change Dropdown</button>
    <div ng-controller="childCtrl as ct">
      <select ng-model="ct.selectedName" ng-options="item for item in ct.names">
      </select>
    </div>
</div>

JS:

var app = angular.module('myApp', []);

app.controller('parentCtrl', function ($scope) {
  var vm = this;
  var newArray = ["Steve", "Jony"];
  vm.callChild = function () {
    $scope.$broadcast('someEvent', newArray);
  };
});

app.controller('childCtrl', function ($scope) {
    var vm = this;
    vm.names = ["Emil", "Tobias", "Linus"];

    $scope.$on('someEvent', function (e, newArray) {
      vm.names = newArray;
    });
});

这是fiddle

1 个答案:

答案 0 :(得分:1)

代码对我来说很好,我已经整合了1.5版本。

参见 plnkr here

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.5.x" src="https://code.angularjs.org/1.5.8/angular.js" data-semver="1.5.8"></script>
  <script src="app.js"></script>
</head>



<div ng-app="myApp" ng-controller="parentCtrl as pt">
  <button ng-click="pt.callChild()">Change Dropdown</button>
  <div ng-controller="childCtrl as ct">
    <select ng-model="ct.selectedName" ng-options="item for item in ct.names">
    </select>
  </div>
</div>

</html>