2016-12-01 3 views
-1

В следующем коде, взятом из моего приложения, выпадающий список не обновляется данными области. Как я могу сделать эту работу? Мне нужно передать варианты выпадающего из родительского контроллера в дочерний контроллер. Я получаю ошибку [$ injector: modulerr].ng-options not update select tag

<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.

+0

если первоначальное связывание не работает, это не удивительно, что все это не работает. Можете ли вы опубликовать все сообщение об ошибке? – valepu

+0

Вы можете увидеть сообщение, открыв консоль в скрипке. Но размещая его здесь также: VM66 angular.min.js: 6 Ошибка нечистоты: [$ injector: modulerr] http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=myApp&p1=Error%3A % 2 ... ogleapis.com% 2Fajax% 2Flibs% 2Fangularjs% 2F1.4.8% 2Fangular.min.js% 3A20% 3A274) (...) – maverick

+0

Извините, не заметил скрипку, когда я написал комментарий – valepu

ответ

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="[email protected]" 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>